首页 > 其他分享 >一日一技:如何捅穿Cloud Flare的5秒盾(转)

一日一技:如何捅穿Cloud Flare的5秒盾(转)

时间:2023-06-21 17:36:11浏览次数:48  
标签:cloudscraper Flare 秒盾 scraper requests Cloud

经常写爬虫的同学,肯定知道 Cloud Flare 的五秒盾。当你没有使用正常的浏览器访问网站的时候,它会返回如下这段文字:

Checking your browser before accessing xxx.

This process is automatic. Your browser will redirect to your requested content shortly.

Please allow up to 5 seconds…

即使你把 Headers 带完整,使用代理 IP,也会被它发现。我们来看一个例子。Mountain View Whisman students sent home after children test positive for COVID-19 [1] 这篇文章,使用正常浏览器访问,效果如下图所示:

 

直接查看原始的网页源代码,可以看到,新闻标题和正文就在源代码里面,说明新闻的标题和正文都是后端渲染的,不是异步加载。如下图所示:

 

现在,我们使用 requests,带上完整的请求头来访问这个网站,效果如下图所示:

 

 

网站识别到了爬虫行为,成功把爬虫请求挡住了。很多同学在这个时候就已经束手无策了。因为这是爬虫的第一次请求就被挡住了,所以网站不是检测的 IP 或者访问频率,所以即使用代理 IP 也无济于事。而现在即使带上了完整的请求头都能被发现,那还有什么办法绕过这个检测呢?

实际上,要绕过这个5秒盾非常简单,只需要使用一个第三方库,叫做cloudscraper。我们可以使用pip来安装:

python3 -m pip install cloudscraper

安装完成以后,只需要使用3行代码就能绕过 Cloud Flare 的5秒盾:

 
import cloudscraper
scraper = cloudscraper.create_scraper()
resp = scraper.get('目标网站').text

我们还是以上面的网站为例:

 
import cloudscraper
from lxml.html import fromstring

scraper = cloudscraper.create_scraper()
resp = scraper.get('https://mv-voice.com/news/2021/05/04/mountain-view-whisman-students-sent-home-after-children-test-positive-for-covid-19').text
selector = fromstring(resp)
title = selector.xpath('//h1/text()')[0]
print(title)

运行效果如下图所示:

破盾成功。

CloudScraper[2]  非常强大,它可以突破 Cloud Flare 免费版各个版本的五秒盾。而且它的接口和 requests 保持一致。原来用 requests 怎么写代码,现在只需要把requests.xxx改成scraper.xxx就可以了。

 

 转自:微信公号:未闻code:https://mp.weixin.qq.com/s?spm=a2c6h.12873639.article-detail.5.34b68c37e8r54K&__biz=MzI2MzEwNTY3OQ==&mid=2648980828&idx=1&sn=0b053e7284442c8e6beb073a61ec8b29&scene=21#wechat_redirect





标签:cloudscraper,Flare,秒盾,scraper,requests,Cloud
From: https://www.cnblogs.com/tjp40922/p/17496775.html

相关文章

  • 一日一技:【最新】再次突破CloudFlare五秒盾付费版(转)
    去年我写了一篇文章:一日一技:如何捅穿CloudFlare的5秒盾 ,这篇文章使用的第三方库『cloudscraper』可以绕过免费版的五秒盾。但遇到付费版就无能为力了。最近在爬币圈的网站,其中有一个网站叫做:Codebase使用的就是付费版的CloudFlare五秒盾。当我们使用CloudScraper去爬时,报错如下......
  • 用cloudmonkey批量创建虚拟机
    需求:1.root磁盘120G(这个在做镜像的时候已经做好)2.需要用到share网络3.添加500G磁盘并且挂载早虚拟机上面#!/bin/bashzone_id=d530fee4-413a-463b-abf5-4fdcf523077bnetwork_id=96eb15a6-ccd3-4e33-adf0-b5f3e63e2466serviceofferingid='b1fb445d-2571-4803-a3f5-93f0ad81b245't......
  • 微服务 – Spring Cloud – Eureka – Discovery 服务发现
    如何发现服务呢?服务注册到Eureka集群中。需要通过RestTemplate和@LoadBalanced实现服务发现调用(http)。在上一篇笔记中,order服务通过estTemplate和@LoadBalanced实现调用payment服务.是通过注册在Eureka集群中的服务名称来调用的。那么如何发现这些服务呢?也就是......
  • 微服务 – Spring Cloud – Eureka - RestTemplate和@LoadBalanced 实现服务发现调用(
    背景:服务注册用的是Eureka集群。服务调用用的是注解@LoadBalanced和RestTemplate服务数量两个:order服务和pyment服务(order服务是调用者。payment服务是被调用者)首先将order服务和payment服务注册Eureka集群中。通过order调用payment服务Eureka集......
  • 七、Spring Cloud Alibaba Sentinel简介
    随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。一、特性丰富......
  • 微服务 - Spring Cloud - Eureka Server单机和集群搭建、单机服务注册和集群服务注册
    Eureka服务管理Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功能Eureka服务注册与发现Eur......
  • 使用python对AWS-CloudTrail-Json-日志文件key字段名称的提取
    关于AWS CloudTrail-在Console界面,默认只能看到最近90天的数据如果需要追踪更早的操作记录,得需要配置CloudTrail日志输出保存到s3在s3上不同的region位于不同的目录,最后会将某一天的日志,存放到那一天的目录/文件夹中,目录路径格式(部分)如:aws-account-xxx/CloudTrail/cn-nort......
  • 浪潮云海完成业界首个“一云多芯”SPEC Cloud基准测试,建立行业参考基准
    近日,浪潮云海OS完成业界首个面向一云多芯场景的SPECCloud基准测试,在三种处理器节点混合部署集群测试中,相对可扩展性、平均实例配置时间等指标均达到全球领先水平,验证了云海OS在业务应用跨处理器架构场景下的高效率、高性能和高扩展能力。云海OS在成功完成全球最大规模单一集群云数......
  • 基于spring cloud技术栈构建的一款源码级jvs低代码平台,值得收藏
    开发团队在日常的项目开发过程中,会遇到各种各样单点需求。确保应用程序能够满足特定的业务需求并与现有系统和服务进行有效集成,那么是团队选择对应技术栈或者整体开发工具的核心考量:核心关注的点:1、技术栈的选择,一定要通用,人才选择面比较广2、能力的扩展性,能否自己添加各种能力,最......
  • 什么是 SAP Commerce Cloud SmartEdit 的 webApplicationInjector.js
    SAPCommerceCloudSmartEdit是SAP提供的一种基于云的电子商务平台,旨在帮助企业轻松管理和优化他们的在线商店。SmartEdit是SAPCommerceCloud的一个功能强大的组件,用于简化网站内容的编辑和管理。通过SmartEdit,商家可以在一个易于使用的界面中轻松地修改和更新网站布局......