3.4 选学:爬虫的难点

  • 网站需要登录:登录后才能看见网站的内容。

  • 动态渲染的页面:越来越多的网站使用 JavaScript 动态构建页面,最终浏览器看到的页面和请求返回的页面不一样。

  • 网站的反爬虫措施:根据访问特征例如 IP 地址限流。

  • 爬取网页的速度太慢。

模拟登录

网站一般使用 Cookie 来记住登录状态。

当网站设置 Cookie 时,响应会加上 Set-Cookie 头。

爬虫请求通过加上 Cookies 头去告诉网站自己的登录状态。

模拟渲染

当静态页面没有包含。

Chrome Driver 是自动化的 Chrome 浏览器, 我们可以通过编程的方式控制它访问页面并获得动态渲染后的内容。

Selenium 是自动化网页操作的框架。

结合 Selenium 和 Chrome Driver,我们可以完成动态网页的爬取。

模拟多 IP 访问

最常用的反爬虫措施就是检验请求的 IP。

爬虫方的应对办法就是使用代理,例如使用 Crawlera 的服务,每个请求都用不同的 IP。

提高性能

爬虫的大部分的时间都损耗在等待网络返回上面,使用异步框架如 scrapy 可以增加爬虫的吞吐量。使用多进程可以进一步充分利用 CPU 的多核心。

Last updated