Skip to content

scrapy爬虫教程摘要(二)——反爬攻防

通常有以下几种方法

  • 使用user agent池,轮流选择之一来作为user agent。池中包含常见的浏览器的user agent(google一下一大堆)
  • 禁止cookies(参考 COOKIES_ENABLED),有些站点会使用cookies来发现爬虫的轨迹。
  • 设置下载延迟(2或更高)。参考 DOWNLOAD_DELAY 设置。
  • 如果可行,使用 Google cache 来爬取数据,而不是直接访问站点。
  • 使用IP池。例如免费的 Tor项目 或付费服务(ProxyMesh)。
  • 使用高度分布式的下载器(downloader)来绕过禁止(ban),您就只需要专注分析处理页面。这样的例子有: Crawlera

以上来自scrapy文档《实践经验》部分,其实主要是行为模仿,通过不停变换user-agent,ip,关闭cookie,使得让网站认为你是一个全新的用户,通常网站不会针对一个新用户设置过高的门槛,只会封杀频繁访问的用户。设置延迟也是为了模仿正常用户的访问频率,避免过高的QPS。不过对于是否关闭cookie其实要具体问题具体分析,有的内容是登录用户可见的就必须要带上cookie,最好多备用几个轮流使用,避免显得同一个用户太频繁访问。

使用google cache代替原网站的访问是个眼前一亮的奇技淫巧,国内用户不能访问google可以使用百度快照代替,因为大部分网站对搜索引擎的爬虫是持欢迎态度的,咱们去取搜索引擎爬到的数据也是可以的,缺点可能就是搜索引擎上面的快照不一定很新,如果对时效性有要求的话要多加斟酌。

Crawlera我没有用过,看起来也是一个行为模拟工具,相当于把行为模拟代理出去了,他负责设置各种代理和UA等(可能主要是IP),确保帮你把页面下载到,你只需要专注于分析即可。

分享到:
Published in程序猿的东西

Be First to Comment

发表评论