当前位置: 首页 > 面试题库 >

如何在Scrapy中绕过cloudflare bot / ddos​​保护?

诸葛绍元
2023-03-14
问题内容

我以前偶尔会抓取电子商务网页以获取产品价格信息。我有一段时间没有使用过使用Scrapy构建的刮板,而昨天却试图使用它-我遇到了机器人防护问题。

它使用的是CloudFlare的DDOS保护,基本上是使用JavaScript评估来过滤掉禁用了JS的浏览器(因此是抓取器)。评估功能后,将生成带有计算数字的响应。作为回报,服务会发回两个身份验证Cookie,这些身份验证Cookie附加在每个请求上,可以正常爬网该站点。这是它如何工作的描述。

我还发现了一个使用Cloudflare-Scrape的 Python模块,该模块使用外部JS评估引擎来计算数量并将请求发送回服务器。我不确定如何将其集成到Scrapy中。还是有一种不使用JS执行的更聪明的方法?最后是表格…


问题答案:

因此,我在cloudflare-scrape的帮助下使用Python执行了JavaScript 。

在你的抓取中,你需要添加以下代码

def start_requests(self):
  for url in self.start_urls:
    token, agent = cfscrape.get_tokens(url, 'Your prefarable user agent, _optional_')
    yield Request(url=url, cookies=token, headers={'User-Agent': agent})

以及解析功能。就是这样!

当然,你需要先安装cloudflare-scrape并将其导入到Spider。你还需要安装JS执行引擎。我已经有了Node.JS,没有怨言。



 类似资料:
  • 问题内容: 通常在服务器级别阻止DDoS(分布式拒绝服务攻击),对吗? 有没有办法在PHP级别上阻止它,或者至少减少它? 如果没有,阻止DDoS攻击的最快,最常见的方法是什么? 问题答案: DDOS是一系列攻击,它们淹没了数据中心的关键系统,其中包括: 托管中心与互联网的网络连接 托管中心的内部网络和路由器 您的防火墙和负载平衡器 您的Web服务器,应用程序服务器和数据库。 在开始构建DDOS防御

  • 我需要从一个网站获取一些信息只是为了教育的目的,但我不能发送请求,因为保护。我首先会看到典型的Checking-your-browser页面,然后我会被反复重定向。我如何在python Selenium中绕过这个保护?

  • 我是一名Linux用户,很不高兴发现vhx等网站上的HDCP保护。电视阻止我在完全合法的上下文中查看内容,因为所有Linux浏览器都缺乏HDCP支持。由于HDCP在几年前被“破坏”,就主密钥泄漏而言,任何设备理论上都可以针对HDCP检查进行授权。 假设,是什么阻止某人编写浏览器扩展或创建自定义firefox构建以这种方式覆盖DRM API? 为什么没有这样的项目,仅仅是缺乏兴趣,还是有一个难以逾越

  • 问题内容: 是否有可能绕过Hibernate中的ID,在大多数情况下,我们希望使用来设置ID ,但在某些情况下希望手动设置ID。 这可能吗? 问题答案: 我知道您可以在JPA规范中执行此操作,因此您应该能够在Hibernate中(使用JPA +批注)。 如果仅填写要创建的新持久性模型的ID字段,那么当您将该模型“合并”到EntityManager中时,它将使用您设置的ID。 但是,这确实有后果。您

  • 最近,我一直在使用AWS API gateway,在那里我创建了一个API,并用API key和Cognito(OAuth)保护它。 有一天,我发现我的API被访问了10K次,但失败了,因为攻击者没有访问它的权限。 任何帮助都很感激...

  • 我试图查找一个连接工厂在一个代码,部署为osgi捆绑在servicemix(karaf)的一部分 我面临的问题是- 当我做ctx的时候。lookup(“xyz”)-它给了我一个javax对象。命名。引用而不是MQconnectionFactory。(与独立的java应用程序一样,同样的代码也可以很好地工作) 我的pom中有以下依赖项。xml- 同样的com。ibm dependency已作为kar