我曾经偶尔刮电子商务的网页来获取产品价格信息。我已经有一段时间没有使用过使用Scrapy构建的scraper了,昨天我试图使用它-我遇到了一个机器人保护的问题。
它使用的是CloudFlare的DDOS保护,它基本上是使用JavaScript评估过滤掉禁用JS的浏览器(因此是scraper)。一旦对函数求值,就会生成带有计算数的响应。作为回报,服务发送回两个附加到每个请求的身份验证cookie,允许正常地对站点进行爬网。Here是对它工作原理的描述。
我还发现了一个cloudflare-scrapePython模块,它使用外部JS评估引擎计算数字并将请求发送回服务器。但我不知道如何将其集成到Scrapy中。或者不使用JS执行有更聪明的方法吗?最后,这是一种形式。。。
我不需要任何帮助。
所以我在cloudflare-scrape的帮助下使用Python执行JavaScript。
在scraper中,需要添加以下代码:
以及解析函数。就这样!
当然,您需要先安装cloudflare scrape并将其导入您的spider。您还需要安装JS执行引擎。我已经有Node.JS了,没有抱怨。
显然,最好的方法是在CloudFlare中白名单您的IP;如果这不合适,让我推荐cloudflare-scrape库。您可以使用它来获取cookie令牌,然后在Scrapy request中将此cookie令牌提供回服务器。
相关问题 更多 >
编程相关推荐