查看“Python爬虫案例:用selenium爬取豆瓣电影”的源代码
←
Python爬虫案例:用selenium爬取豆瓣电影
跳转至:
导航
,
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
==任务描述== 我们准备爬取豆瓣排名前250的电影信息,以下是网址: https://movie.douban.com/top250 仔细观察,我们可以发现250部电影一共被分成了10页,每页有25部电影;接下来我们看看每页的网址有什么不同: 这是第一页的: https://movie.douban.com/top250?start=0&filter= 这是第二页的: https://movie.douban.com/top250?start=25&filter= 因此网址的规律就是start从0开始,然后每页增加25. 之后我们先以第一页为例,看看是如何爬取信息的。 ==step1:拿到一个页面中25部电影的信息== <nowiki> from selenium import webdriver url = 'https://movie.douban.com/top250' driver = webdriver.Chrome("C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe") driver.get(url) #conts = driver.find_elements_by_xpath('//div[@class="item"]') conts = driver.find_elements_by_class_name('item') print(len(conts)) #conts包含了一个页面中25电影的信息(len(conts)=25) '</nowiki> ==step2:得到每部电影的具体信息== ===提取电影排名=== 刚刚已经知道,conts包含了25部电影的信息,那么我们这里就先提取第一部电影的信息看看。下图就是第一部电影的所有信息: rank=conts[0].find_element_by_tag_name('em').text [[文件:python22032502.png|500px]] 从上面的图中可以看出,在一部影片的信息中,只有排名的tag是’em’,所以我们可以直接使用by_tag_name的方式得到排名信息;由于一部电影只有一个排名,所以我们这里使用的是find_element(单数形式) ===提取电影名字=== movie_name = conts[0].find_element_by_class_name('title').text 可以看到,只有电影名字的class属性值是title,因此可以用by_class_name的方式找到电影名字;但是我们又可以看到,有两个class的属性值都是title,如果用find_elements的话,会把两个都捕获到(即‘肖申克的救赎’和‘The Shawshank Redemption’都会被捕获),因此我们这里使用find_element,它只会捕获到第一个符合要求的信息(即‘肖申克的救赎’) [[文件:python22032502.png|500px]] ===提取电影评分=== <nowiki> #方法2:score = conts[0].find_element_by_xpath('.//div[@class="star"]/span[2]').text score2 = conts[0].find_element_by_xpath('.//span[@class="rating_num"]').text print(score2) ''' .表示在当前节点内寻找,当前节点就是conts[0]这个节点 //div[@class="star"]/span[2]表示寻找tag是div, class属性值是star的节点下的第二个span节点 ''' </nowiki> ===提取电影链接=== link = conts[0].find_element_by_xpath('.//div[1]/a').get_attribute('href') ===提取电影的一句话简介=== inq = conts[0].find_element_by_class_name('inq').text ==step3:爬取10个页面共250部电影的信息== <nowiki>from selenium import webdriver driver = webdriver.Chrome("C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe") for page in range(0,3): #这里只爬了前3个页面,要怕爬10个的话把3改成10就可以了 url = 'https://movie.douban.com/top250?start='+str(page*25) driver.get(url) conts = driver.find_elements_by_xpath('//div[@class="item"]') #conts包含了一个页面中25电影的信息(len(conts)=25) for i in range(2): #这里只爬取了每个页面的前两部电影,要爬该页面的所有电影,把2改成25就可以 rank=conts[i].find_element_by_tag_name('em').text print(rank) #拿到排名 movie_name = conts[i].find_element_by_class_name('title').text print(movie_name) #拿到电影名字 score = conts[i].find_element_by_xpath('.//div[@class="star"]/span[2]').text print(score) #拿到评分 judge_counts = conts[i].find_element_by_xpath('.//div[@class="star"]/span[4]').text[:-3] print(judge_counts) #拿到参评人数 link = conts[i].find_element_by_xpath('.//div[1]/a').get_attribute('href') print(link) #拿到电影链接 inq = conts[i].find_element_by_class_name('inq').text print(inq) #拿到一句话简介 crew = conts[i].find_element_by_xpath('.//div[@class="bd"]/p[1]').text.split('...')[0] #拿到演职员信息 more_info = conts[i].find_element_by_xpath('.//div[@class="bd"]/p[1]').text.split('...')[-1].strip() #拿到影片的其他相关信息 print(crew) print(more_info) print('*'*20) driver.close() #这里一定要关闭</nowiki> 爬出来的信息: <nowiki> 1 肖申克的救赎 9.7 2580723 https://movie.douban.com/subject/1292052/ 希望让人自由。 导演: 弗兰克·德拉邦特 Frank Darabont 主演: 蒂姆·罗宾斯 Tim Robbins / 1994 / 美国 / 犯罪 剧情 ******************** 2 霸王别姬 9.6 1916420 https://movie.douban.com/subject/1291546/ 风华绝代。 导演: 陈凯歌 Kaige Chen 主演: 张国荣 Leslie Cheung / 张丰毅 Fengyi Zha 1993 / 中国大陆 中国香港 / 剧情 爱情 同性 ******************** 26 触不可及 9.3 946130 https://movie.douban.com/subject/6786002/ 满满温情的高雅喜剧。 导演: 奥利维·那卡什 Olivier Nakache / 艾力克·托兰达 Eric Toledano 主 2011 / 法国 / 剧情 喜剧 ******************** 27 末代皇帝 9.3 759763 https://movie.douban.com/subject/1293172/ “不要跟我比惨,我比你更惨”再适合这部电影不过了。 导演: 贝纳尔多·贝托鲁奇 Bernardo Bertolucci 主演: 尊龙 John Lone / 陈 1987 / 英国 意大利 中国大陆 法国 / 剧情 传记 历史 ******************** 51 让子弹飞 8.9 1492281 https://movie.douban.com/subject/3742360/ 你给我翻译翻译,神马叫做TMD的惊喜。 导演: 姜文 Wen Jiang 主演: 姜文 Wen Jiang / 葛优 You Ge / 周润发 Yun-F 2010 / 中国大陆 中国香港 / 剧情 喜剧 动作 西部 ******************** 52 指环王1:护戒使者 9.1 757203 https://movie.douban.com/subject/1291571/ 传说的开始。 导演: 彼得·杰克逊 Peter Jackson 主演: 伊利亚·伍德 Elijah Wood / 西恩 2001 / 新西兰 美国 / 剧情 动作 奇幻 冒险 ********************</nowiki> 参考文档:[https://blog.csdn.net/weixin_41391619/article/details/106984878 用selenium爬取豆瓣电影]
返回至
Python爬虫案例:用selenium爬取豆瓣电影
。
导航菜单
个人工具
登录
命名空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
帮助
工具
链入页面
相关更改
特殊页面
页面信息