第5课 实例二:爬取电影

一、爬取前的准备工作

1. 选择一个网站:https://www.douban.com

2. 在进行爬取之前,我们先去看看它的robots协议。

协议网址:https://www.douban.com/robots.txt

3. 进入首页 https://movie.douban.com/top250?start=0&filter= ,打开检查工具,在Elements里查看这个网页,是什么结构。

点击开发者工具左上角的小箭头,选中“肖申克的救赎”,这样就定位了电影名的所在位置,审查元素中显示<span class="title">:<span>标签内的文本,class属性;推荐语和评分也是如此,<span class='inq'>,<span class='rating_num'>;序号:<em class>,<em>标签内的文本,class属性;推荐语<span class='inq'>;链接是<a>标签里href的值。最后,它们最小共同父级标签,是<li>。

4. 我们再换个电影验证下找的规律是否正确。

5. check后,我们再看一共10页,每页的url有什么相关呢?

第1页:https://movie.douban.com/top250?start=0&filter=

第3页:https://movie.douban.com/top250?start=50&filter=

第7页:https://movie.douban.com/top250?start=150&filter=

发现只有start后面是有变化,规律就是第N页,start=(N-1)*25

6. 基于以上分析,我们有两种写爬虫的思路。

思路一:先爬取最小共同父级标签 <li>,然后针对每一个父级标签,提取里面的序号/电影名/评分/推荐语/链接。

思路二:分别提取所有的序号/所有的电影名/所有的评分/所有的推荐语/所有的链接,然后再按顺序一一对应起来。

二、代码实现过程(思路一)

import requests# 引用requests库

from bs4 import BeautifulSoup# 引用BeautifulSoup库

res_films=requests.get('https://movie.douban.com/')# 获取数据

bs_films=BeautifulSoup(res_films.text,'html.parser')# 解析数据

fil_title=bs_films.find_all(class_='title')

fil_num=bs_films.find_all(class_="")

list_all=[]# 创建一个空列表,用于存储信息

for x in range(len(fil_num)):

    list_films=[fil_num[x].text[18:-14],fil_title[x].find('a')['href']]

    list_all.append(list_films)

    print(list_all)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容