【发布时间】:2016-01-19 18:18:04
【问题描述】:
我以前偶尔会抓取电子商务网页以获取产品价格信息。我有一段时间没有使用使用 Scrapy 构建的爬虫了,昨天尝试使用它 - 我遇到了机器人保护问题。
它使用 CloudFlare 的 DDOS 保护,基本上是使用 JavaScript 评估来过滤掉禁用 JS 的浏览器(因此是爬虫)。评估函数后,将生成具有计算数量的响应。作为回报,服务会发回两个附加到每个请求的身份验证 cookie,从而允许正常抓取站点。 Here 是对其工作原理的描述。
我还发现了一个cloudflare-scrape Python 模块,它使用外部 JS 评估引擎来计算数量并将请求发送回服务器。不过,我不确定如何将其集成到 Scrapy 中。或者也许有一种更聪明的方法而不使用 JS 执行?说到底,还是个形式……
我会寻求任何帮助。
【问题讨论】:
-
执行JS有什么问题?没有它,很多内容都无法访问...
-
@dandavis Scrapy 不执行 JS。
-
没有 JS,抓取越来越没用。您应该考虑使用浏览器进行抓取。我的抓取脚本可以在登录后获取动态和分页内容,甚至在抓取之前假点击请求更多动态子内容,我认为没有超过 10 行代码或需要一个大型外部库。您所需要的只是tampermonkey 和一个下载程序……KISS。如果你想让它更自动化,你可以将用户脚本切换到 phantomJS 或类似的东西。
-
执行JS你可以使用splash,它与scrapy完全集成。
标签: javascript python cookies scrapy