爬虫如何尽量模拟浏览器

http headers

 
发送 http 请求时,Host, Connection, Accept, User-Agent, Referer, Accept-Encoding, Accept-Language 这七个头必须添加,因为正常的浏览器都会有这 7 个头。
 
其中:

  1. Host 一般各种库都已经填充了
  2. Connection 填 Keep-Alive
  3. Accept 一般填 text/html 或者 application/json
  4. User-Agent 使用自己的爬虫或者伪造浏览器的 UA
  5. Referer 一般填当前 URL 即可,考虑按照真是访问顺序添加 referer,初始的 referer 可以使用 google。
  6. Accept-Encoding 从 gzip 和 deflate 中选,好多网站会强行返回 gzip 的结果
  7. Aceept-Language 根据情况选择,比如 zh-CN, en-US

cookies

cookie 是需要更新的
 

others

 
可能有一些人类不可见的陷阱链接,不要访问这些链接

爬取间隔自适应

就是已经限制了你这个 IP 的抓取,就不要傻傻重复试,怎么也得休息一会。网易云音乐操作起来比较简单,sleep 一下就好了。其实 sleep 的间隔应该按情况累加,比如第一次 sleep 10 秒,发现还是被约束。那么久 sleep 20 秒。.. 这个间隔的设置已经自适应的最终效果是经验值。

ref

  1. http://www.cnblogs.com/jexus/p/5471665.html

及时获取更新,请关注公众号“爬虫技术学习”(spider-learn)

多年大厂求职&面试官经验,简历付费优化,¥ 500/次。

公众号“爬虫技术学习(spider-learn)”

About 逸飞

后端工程师

发表评论

邮箱地址不会被公开。 必填项已用*标注