【发布时间】:2018-05-14 20:48:04
【问题描述】:
Incapsula 是一个 Web 应用交付平台,可用于防止抓取。
我在 Python 和 Scrapy 中工作,我找到了 this,但它似乎已经过时并且不适用于当前的 Incapsula。我用我的target website 测试了 Scrapy 中间件,但由于中间件无法提取一些混淆参数,我得到了 IndexErrors。
是否可以调整这个 repo 或者 Incapsula 现在改变了它的操作模式?
我也很好奇如何将请求从 chrome 开发工具“复制为 cURL”到我的目标页面,并且 chrome 响应包含用户内容,但 curl 响应是一个“封装事件”页面.这适用于最初清除 cookie 的 chrome .....
curl 'https://www.radarcupon.es/tienda/fotoprix.com'
-H 'pragma: no-cache' -H 'dnt: 1' -H 'accept-encoding: gzip, deflate, br'
-H 'accept-language: en-GB,en-US;q=0.9,en;q=0.8'
-H 'upgrade-insecure-requests: 1'
-H 'user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/62.0.3202.94 Chrome/62.0.3202.94 Safari/537.36'
-H 'accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8'
-H 'cache-control: no-cache' -H 'authority: www.radarcupon.es'
--compressed
我原以为双方的第一个请求会返回类似 javascript 挑战的内容,它会设置一个 cookie,但现在似乎不太像那样工作?
【问题讨论】:
-
它使用 javascript,因此您需要使用 Splash 或 Selenium。如果网站没有通过指纹检测到旧版本的 webkit(可能会),我会推荐 Splash。否则使用硒。即使添加了正确的标题,它仍然可以通过各种浏览器设置、屏幕显示、指纹识别来检测机器人......所以这就解释了为什么你的 curl 不起作用。 Selenium 会很慢,但可以肯定。
-
但我的意思是他们是如何从第一个请求开始的。所有服务器将看到的是同一个数据包。当然,他们必须首先向我发送一个加载了 javascript 的响应,然后在交付更多内容之前执行指纹或质询。
-
祝你好运,以便告诉你如何打破安全措施。我不知道它是如何工作的。如果有某种原因你不能使用硒?因为这是通往成功的捷径。
-
我想我可能可以将硒用于我的目的。我也只是好奇 incapsula 是如何工作的
-
看看this,不过我没试过
标签: python web-scraping scrapy incapsula