掌握爬虫基础,包括HTTP基本原理、web网页基础、爬虫的基本原理、代理基本原理、多线程多进程基本原理。
掌握基本库的使用,包括urllib、requests、正则表达式、httpx。
掌握网页数据解析提取,包括XPath、BeautifulSoup、pyquery等。
掌握数据存储,包括TXT文本存储、JSON文件存储、CSV文件存储、MYSQL和MongoDB存储。
Ajax数据爬取和异步爬虫,JavaScript动态渲染页面爬取。
用电影网站https://spa2.scrape.center/做示例
我们仔细观察每部电影的URL和Ajax请求API,
例如点击《霸王别姬》,观察URL的变化
可以看到,电影详情页的URL和首页的不一样,
在图2-13 中,URL里的detail后面 直接跟的是id,是1、2、3等数字
但是这里变成了一个长字符串,看着是由Base64编码而成,
也就是说详情页的URL中包含 加密参数,所以我们无法直接根据规律构造详情页的URL
然后,依次点击列表页的第一页到第十页,观察Ajax请求,
可以看到,这里接口的参数多了一个token字段,而且每次请求的token都不同,
这个字段看着同样是由Base64编码而得
更棘手一点的是,API具有时效性,意味着把Ajax接口内URL复制下来,
短期内是可以访问的,但过段时间就访问不了了,会直接返回401状态码
之前我们可以直接用requests构造Ajax请求,但现在Ajax请求接口中带有token,
而且还是可变的。
我们不知道token的生成逻辑,就没法直接构造Ajax请求来爬取数据,怎么办呢?
先分析出token的生成逻辑,再模拟Ajax请求,是一个办法,
可这个办法相对较难,
此时我们可以用Selenium绕过这个阶段,直接获取JavaScript最终渲染完成
的页面源代码。再从中提取数据即可
之后我们要完成如下工作。
通过Selenium遍历列表页,获取每部电影的详情页URL
通过Selenium根据上一步获取的详情页URL 爬取每部电影的详情页
从详情页中提取每部电影的名称、类别、分数、简介、封面等内容
职责
准备Chrome浏览器并配置好ChromeDriver。
成功运行python和用selenium打开Chrome浏览器。
爬取列表页,详情页,数据存储。
用电影网站https://spa2.scrape.center/做示例 我们仔细观察每部电影的URL和Ajax请求API, 例如点击《霸王别姬》,观察URL的变化 可以看到,电影详情页的URL和首页的不一样, 在图2-13 中,URL里的detail后面 直接跟的
饼状图显示各区二手房数量所占比。 创建cleaning_data()方法,在该方法中首先读取“二手房数据.csv”文件并创建DataFrame临时表格,然后将数据中的索引列、空值以及数据中的无效值删除,再将房子单价数据类型转换为float类型,最后将清洗后的数据返回。 创建s