爬虫学习笔记num5
实例:豆瓣电影TOP250排行榜
需求:爬取豆瓣电影前250影片片名,导演和演员,评分,简介,评价人数
这里用的是xpath进行数据抓取的,这里没有进行翻页操作,如需翻页操作,只需对url进行传入参数即可。后面运用crawlspider进行全站爬取只需在Rule添加翻页链接的正则表达式即可。
如果进行数据持久化存储可以传建一个文件夹放入即可,也可以放入数据库,excel表格中。
import requests
from lxml import etree
# 指定url地址
url = 'https://movie.douban.com/top250'
# 进行UA伪装
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36'}
# 进行get请求
response = requests.get(url=url, headers=headers).text
# 进行数据解析 运用xpath进行数据提取
tree = etree.HTML(response)
li_list = tree.xpath('//*[@id="content"]/div/div[1]/ol/li')
for li in li_list:
# 获取片名
name = li.xpath(".//div/div[2]/div[1]/a/span[1]/text()")[0]
# print(name)
# 获取导演和演员
director_actor = li.xpath("./div/div[2]/div[2]/p[1]/text()")
director_actor = "".join(director_actor)
# 获取评分
grades = li.xpath("./div/div[2]/div[2]/div/span[2]/text()")[0]
# 获取评价人数
num_eva = li.xpath("./div/div[2]/div[2]/div/span[4]/text()")[0]
# 获取简介
abstract = li.xpath(".//div/div[2]/div[2]/p[2]/span/text()")
abstract = "".join(abstract)
print(name,director_actor,grades,num_eva,abstract)
D:\an-python\anaconda\python.exe H:/爬虫进阶/web框架.py
肖申克的救赎
导演: 弗兰克·德拉邦特 Frank Darabont 主演: 蒂姆·罗宾斯 Tim Robbins /...
1994 / 美国 / 犯罪 剧情
9.7 2163844人评价 希望让人自由。
霸王别姬
导演: 陈凯歌 Kaige Chen 主演: 张国荣 Leslie Cheung / 张丰毅 Fengyi Zha...
1993 / 中国大陆 中国香港 / 剧情 爱情 同性
9.6 1603361人评价 风华绝代。
阿甘正传
导演: 罗伯特·泽米吉斯 Robert Zemeckis 主演: 汤姆·汉克斯 Tom Hanks / ...
1994 / 美国 / 剧情 爱情
9.5 1633512人评价 一部美国近现代史。
这个杀手不太冷
导演: 吕克·贝松 Luc Besson 主演: 让·雷诺 Jean Reno / 娜塔莉·波特曼 ...
1994 / 法国 美国 / 剧情 动作 犯罪
9.4 1818985人评价 怪蜀黍和小萝莉不得不说的故事。
泰坦尼克号
导演: 詹姆斯·卡梅隆 James Cameron 主演: 莱昂纳多·迪卡普里奥 Leonardo...
1997 / 美国 / 剧情 爱情 灾难
9.4 1587652人评价 失去的才是永恒的。
美丽人生
导演: 罗伯托·贝尼尼 Roberto Benigni 主演: 罗伯托·贝尼尼 Roberto Beni...
1997 / 意大利 / 剧情 喜剧 爱情 战争
9.5 1014922人评价 最美的谎言。
千与千寻
导演: 宫崎骏 Hayao Miyazaki 主演: 柊瑠美 Rumi Hîragi / 入野自由 Miy...
2001 / 日本 / 剧情 动画 奇幻
9.4 1701062人评价 最好的宫崎骏,最好的久石让。
辛德勒的名单
导演: 史蒂文·斯皮尔伯格 Steven Spielberg 主演: 连姆·尼森 Liam Neeson...
1993 / 美国 / 剧情 历史 战争
9.5 832477人评价 拯救一个人,就是拯救整个世界。
盗梦空间
导演: 克里斯托弗·诺兰 Christopher Nolan 主演: 莱昂纳多·迪卡普里奥 Le...
2010 / 美国 英国 / 剧情 科幻 悬疑 冒险
9.3 1588958人评价 诺兰给了我们一场无法盗取的梦。
忠犬八公的故事
导演: 莱塞·霍尔斯道姆 Lasse Hallström 主演: 理查·基尔 Richard Ger...
2009 / 美国 英国 / 剧情
9.4 1084025人评价 永远都不能忘记你所爱的人。
海上钢琴师
导演: 朱塞佩·托纳多雷 Giuseppe Tornatore 主演: 蒂姆·罗斯 Tim Roth / ...
1998 / 意大利 / 剧情 音乐
9.3 1295174人评价 每个人都要走一条自己坚定了的路,就算是粉身碎骨。
星际穿越
导演: 克里斯托弗·诺兰 Christopher Nolan 主演: 马修·麦康纳 Matthew Mc...
2014 / 美国 英国 加拿大 冰岛 / 剧情 科幻 冒险
9.3 1261314人评价 爱是一种力量,让我们超越时空感知它的存在。
楚门的世界
导演: 彼得·威尔 Peter Weir 主演: 金·凯瑞 Jim Carrey / 劳拉·琳妮 Lau...
1998 / 美国 / 剧情 科幻
9.3 1175642人评价 如果再也不能见到你,祝你早安,午安,晚安。
三傻大闹宝莱坞
导演: 拉库马·希拉尼 Rajkumar Hirani 主演: 阿米尔·汗 Aamir Khan / 卡...
2009 / 印度 / 剧情 喜剧 爱情 歌舞
9.2 1445547人评价 英俊版憨豆,高情商版谢耳朵。
机器人总动员
导演: 安德鲁·斯坦顿 Andrew Stanton 主演: 本·贝尔特 Ben Burtt / 艾丽...
2008 / 美国 / 科幻 动画 冒险
9.3 1020504人评价 小瓦力,大人生。
放牛班的春天
导演: 克里斯托夫·巴拉蒂 Christophe Barratier 主演: 热拉尔·朱尼奥 Gé...
2004 / 法国 瑞士 德国 / 剧情 音乐
9.3 1004419人评价 天籁一般的童声,是最接近上帝的存在。
大话西游之大圣娶亲
导演: 刘镇伟 Jeffrey Lau 主演: 周星驰 Stephen Chow / 吴孟达 Man Tat Ng...
1995 / 中国香港 中国大陆 / 喜剧 爱情 奇幻 古装
9.2 1153629人评价 一生所爱。
熔炉
导演: 黄东赫 Dong-hyuk Hwang 主演: 孔侑 Yoo Gong / 郑有美 Yu-mi Jung /...
2011 / 韩国 / 剧情
9.3 707257人评价 我们一路奋战不是为了改变世界,而是为了不让世界改变我们。
疯狂动物城
导演: 拜伦·霍华德 Byron Howard / 瑞奇·摩尔 Rich Moore 主演: 金妮弗·...
2016 / 美国 / 喜剧 动画 冒险
9.2 1388913人评价 迪士尼给我们营造的乌托邦就是这样,永远善良勇敢,永远出乎意料。
无间道
导演: 刘伟强 / 麦兆辉 主演: 刘德华 / 梁朝伟 / 黄秋生
2002 / 中国香港 / 剧情 犯罪 悬疑
9.2 942709人评价 香港电影史上永不过时的杰作。
教父
导演: 弗朗西斯·福特·科波拉 Francis Ford Coppola 主演: 马龙·白兰度 M...
1972 / 美国 / 剧情 犯罪
9.3 707130人评价 千万不要记恨你的对手,这样会让你失去理智。
龙猫
导演: 宫崎骏 Hayao Miyazaki 主演: 日高法子 Noriko Hidaka / 坂本千夏 Ch...
1988 / 日本 / 动画 奇幻 冒险
9.2 966619人评价 人人心中都有个龙猫,童年就永远不会消失。
当幸福来敲门
导演: 加布里尔·穆奇诺 Gabriele Muccino 主演: 威尔·史密斯 Will Smith ...
2006 / 美国 / 剧情 传记 家庭
9.1 1164514人评价 平民励志片。
怦然心动
导演: 罗伯·莱纳 Rob Reiner 主演: 玛德琳·卡罗尔 Madeline Carroll / 卡...
2010 / 美国 / 剧情 喜剧 爱情
9.1 1354130人评价 真正的幸福是来自内心深处。
触不可及
导演: 奥利维·那卡什 Olivier Nakache / 艾力克·托兰达 Eric Toledano 主...
2011 / 法国 / 剧情 喜剧
9.2 753281人评价 满满温情的高雅喜剧。
Process finished with exit code 0
如果进行翻页操作
可以进行如下操作
for i in range(0,250,25):
# print(i)
page = '?start=' + str(i) + '&filter='
url = 'https://movie.douban.com/top250' + page
# 进行get请求
response = requests.get(url=url, headers=headers).text
# 进行数据解析 运用xpath进行数据提取
tree = etree.HTML(response)
li_list = tree.xpath('//*[@id="content"]/div/div[1]/ol/li')
for li in li_list:
# 获取片名
name = li.xpath(".//div/div[2]/div[1]/a/span[1]/text()")[0]
# print(name)
# 获取导演和演员
director_actor = li.xpath("./div/div[2]/div[2]/p[1]/text()")
director_actor = "".join(director_actor)
# 获取评分
grades = li.xpath("./div/div[2]/div[2]/div/span[2]/text()")[0]
# 获取评价人数
num_eva = li.xpath("./div/div[2]/div[2]/div/span[4]/text()")[0]
# 获取简介
abstract = li.xpath(".//div/div[2]/div[2]/p[2]/span/text()")
abstract = "".join(abstract)
print(name,director_actor,grades,num_eva,abstract)