首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python爬虫—猫眼电影排行TOP100

学习Python爬虫也有段时间了,之前也看了许多大神的案例,自己也琢磨了爬取原理,由于是个人公号记录,就省去教科书式教学,纯属记录,由于爬取过程中一直着力于自身技能,所有代码均未作批注,以后文章中必须加以改正。

这篇文章是关于猫眼电影排行榜Top100,具体如何排名我们不作研究,只提取我们想要的东西。官网图片如图所示

我们主要提取的内容有电影名称,排名,演员,评分和上映时间,话不多说,直接上代码,

importrequests

frombs4importBeautifulSoup

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

defget_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)

ifresponse.status_code ==200:

returnresponse.text

return None

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

defparse_one_page(html):

soup = BeautifulSoup(html,'lxml')

pattern = soup.find_all('dd')

movie_list = []

ifpattern:

foriteminpattern:

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)

returnmovie_list

return None

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

defwrite_to_file(text):

withopen('maoyan.txt','a+',encoding='utf-8')asf:

foriintext:

f.write(str(i) +'\n')

defmain():

basic_url ='http://maoyan.com/board/4'

foriinrange(,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)

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180804G1FEUL00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券