博客
关于我
[851]反反爬--如何巧过CloudFlare 5秒盾
阅读量:649 次
发布时间:2019-03-13

本文共 981 字,大约阅读时间需要 3 分钟。

修复Cloudflare的5秒防护机制,如何无感抓取Cloundflare加速的网站

当我们试图通过爬虫抓取使用Cloudflare加速的网站时,往往会遇到一个固有的阻碍——5秒的响应等待提示。深入分析该机制工作原理,便能找到绕过防护的有效方法。

在第一个访问请求中,浏览器会执行三个关键操作:

  • 写入__cfduid cookie字段,该字段用于跟踪用户唯一性,这是为了确认用户是否为人类。
  • 发送加密参数请求,并将cf_clearance cookie字段写入。
  • 使用前面写入的cookie字段访问网站主页,获取实际内容。
  • 这些操作说明,Cloudflare通过三步验证来识别异常请求。一旦检测到IP地址异常活跃,Cloudflare就会暂停响应并向用户显示5秒等待提示。

    通过正规方法实现抓取,虽然可行,但缺乏"巧"妙之处:

  • 使用浏览器模拟工具(如Selenium/PhantomJS)进行请求
  • 使用请求库模拟完整抓取过程
  • 这些方法虽可行,但显得平淡无奇。为此,我们开发了一款专门针对Cloudflare防护机制的Python库cloudflare-scrape。该库旨在无感化绕过Cloudflare的防护机制,实现无感爬取。

    云扫 serpent 如何安装使用:

    {"安装说明": "通过pip安装,需确保本地安装node.js开发环境。安装指令如下:","code": "pip install cfscrape\n"}{"使用实例": "以下是针对不同请求类型的实现示例"}{"get请求示例": "import cfscrape\n\nscraper = cfscrape.create_scraper(delay=10) #延迟10秒\nweb_data = scraper.get('目标URL').content\nprint(web_data)\n"}{"post请求示例": "import cfscrape\ncrawler = cfscrape.create_scraper()\nresponse = crawler.post('目标URL', data={"参数": "值"}).content\nprint(response)\n"}

    通过云扫 serpent,实现对Cloudflare网站的无感抓取,只需三行代码即可轻松完成。

    转载地址:http://bmxaz.baihongyu.com/

    你可能感兴趣的文章
    NT AUTHORITY\NETWORK SERVICE 权限问题
    查看>>
    NT symbols are incorrect, please fix symbols
    查看>>
    ntelliJ IDEA 报错:找不到包或者找不到符号
    查看>>
    NTFS文件权限管理实战
    查看>>
    ntko web firefox跨浏览器插件_深度比较:2019年6个最好的跨浏览器测试工具
    查看>>
    ntko文件存取错误_苹果推送 macOS 10.15.4:iCloud 云盘文件夹共享终于来了
    查看>>
    ntp server 用法小结
    查看>>
    ntpdate 通过外网同步时间
    查看>>
    NTPD使用/etc/ntp.conf配置时钟同步详解
    查看>>
    NTP及Chrony时间同步服务设置
    查看>>
    NTP配置
    查看>>
    NUC1077 Humble Numbers【数学计算+打表】
    查看>>
    NuGet Gallery 开源项目快速入门指南
    查看>>
    NuGet(微软.NET开发平台的软件包管理工具)在VisualStudio中的安装的使用
    查看>>
    nuget.org 无法加载源 https://api.nuget.org/v3/index.json 的服务索引
    查看>>
    Nuget~管理自己的包包
    查看>>
    NuGet学习笔记001---了解使用NuGet给net快速获取引用
    查看>>
    nullnullHuge Pages
    查看>>
    NullPointerException Cannot invoke setSkipOutputConversion(boolean) because functionToInvoke is null
    查看>>
    null可以转换成任意非基本类型(int/short/long/float/boolean/byte/double/char以外)
    查看>>