一个小小的爬虫技巧

写过爬虫的同学对 requests 库应该非常熟悉了,这个库是如此的好用。

但今天我就遇到了使用浏览器可以正常访问,一旦使用 requests 去 get 此网站,IP 就会被封,然后浏览器也无法访问。需要等待几个小时之后才能访问。

过了几个小时,我又使用浏览器访问了此 url a,打开谷歌浏览器的开发者工具,发现浏览器先请求另了一个 url b 获取了 cookie ,然后又使用此 cookie 去访问目标 url a。

于是尝试将此 cookie 放在 headers 中,传入 requests 的 get 参数中,发现访问成功。

如果想完全自动化,有两种方法:

  • 较简单的方法,使用 selenium 或者 splinter 直接访问目标网站,获取相关信息,如果仍想使用 requests 则可以将 selenium 或者 splinter 获取到的 cookie 传给 requests 使用。

  • 较标准的方法,使用 request 先访问 url b 获取 cookie,注意包装好仿浏览器的 headers。然后再使用此 cookie 访问目标网站。

希望今天的分享能够帮助到你。

你可能感兴趣的:(一个小小的爬虫技巧)