Python爬虫—猫眼电影排行TOP100

本文介绍了使用Python爬虫抓取猫眼电影排行榜前100名的数据,包括电影名称、排名、演员、评分和上映时间。主要使用requests和BeautifulSoup库,通过伪装浏览器避免反爬机制,解析HTML提取信息,并将数据保存到本地。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习Python爬虫也有段时间了,之前也看了许多大神的案例,自己也琢磨了爬取原理,由于是个人公号记录,就省去教科书式教学,纯属记录,由于爬取过程中一直着力于自身技能,所有代码均未作批注,以后文章中必须加以改正。
  这篇文章是关于猫眼电影排行榜Top100,具体如何排名我们不作研究,只提取我们想要的东西。官网图片如图所示:
在这里插入图片描述
  我们主要提取的内容有电影名称,排名,演员,评分和上映时间,话不多说,直接上代码,

import requests
from bs4 import BeautifulSoup

爬虫过程中我们主要采用Python自带的requests库第三方库。那就是著名美丽汤—BeautifulSoup,安装过程很简单,pip即可。

def get_one_page(url):
    headers = {
        'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 '
                     'Safari/537.36 '
    }
    response = requests.get(url,headers=headers)
    if response.status_code == 200:
        return response.text
    return None

好了,开始代码的正文,首先定义一个函数,用来封装目标页面的文本内容,后续提取的内容直接从里边得到即可,要注意的是,许多网站设置反爬机制,,所以我们用浏览器伪装自己就不用担心封IP了,这里是Google浏览器,个人推荐,特别好用,然后根据状态码判定是否连接成功,返回值为200就表示成功了。

def parse_one_page(html):
    soup = BeautifulSoup(html,'lxml')
    pattern = soup.find_all('dd')
    movie_list = []
    if pattern:
        for item in pattern:
            index_num = item.i.string
            title = item.a['title']
            actor = item.find('p',{'class':'star'}).get_text()
            releasetime = item.find('p',{'class':'releasetime'}).get_text()
            score = item.find('p',{'class':'score'}).get_text()
            score = '(%s)'%score
            # print(index_num,title,actor,releasetime,score)
            movie_list.append(index_num+'.'+title+score+actor.replace(' ','')+releasetime)
        return movie_list
    return None

接下来就是要解析我们之前爬取的页面了,这时候美丽汤就派上用场了,我们注意到,所有的内容都储存在‘dd’标签下,所以我们直接找到它所有的内容,然后通过每个名称的节点把需要的东西爬取下来,最后全部添加到新建的一个空列表就可以。

def write_to_file(text):
    with open('maoyan.txt', 'a+', encoding='utf-8') as f:
        for i in text:
            f.write(str(i) + '\n')

def main():
    basic_url = 'http://maoyan.com/board/4'
    for i in range(0,100,10):
        url = basic_url + '?offset=%s' %i
        html = get_one_page(url)
        movie_list = parse_one_page(html)
        write_to_file(movie_list)

main()

内容到手后,就需要保存到本地了,很简单,写入本地,最后定义主函数,赋值我们需要的变量,运行主函数就大功告成了。下边是我们的成果展示:

1.霸王别姬(9.6)
主演:张国荣,张丰毅,巩俐
上映时间:1993-01-01(中国香港)
2.肖申克的救赎(9.5)
主演:蒂姆·罗宾斯,摩根·弗里曼,鲍勃·冈顿
上映时间:1994-10-14(美国)
3.罗马假日(9.1)
主演:格利高里·派克,奥黛丽·赫本,埃迪·艾伯特
上映时间:1953-09-02(美国)
4.这个杀手不太冷(9.5)
主演:让·雷诺,加里·奥德曼,娜塔莉·波特曼
上映时间:1994-09-14(法国)
5.教父(9.3)
主演:马龙·白兰度,阿尔·帕西诺,詹姆斯·肯恩
上映时间:1972-03-24(美国)
6.泰坦尼克号(9.5)
主演:莱昂纳多·迪卡普里奥,凯特·温丝莱特,比利·赞恩
上映时间:1998-04-03
7.龙猫(9.2)

至此,爬虫完毕。虽然教程很笼统,可这只是为了方便自己记录查询而已,如果作为新手学习,还差了些火候,就这样,不定期更新自己的学习成果。同时,本公众号号会逐渐完善起来,涉及个人爱好的各个领域,加油,Vodka。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值