学习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)
领取专属 10元无门槛券
私享最新 技术干货