Python Selenium绕过Cloudflare抓取网页

这篇具有很好参考价值的文章主要介绍了Python Selenium绕过Cloudflare抓取网页。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Cloudflare和很多其他网站一样会检测访问是否为Selenium bot,其中一项为检测Selenium运行时出现的特有js变量。

这里主要包括了是否含有"selenium"/ "webdriver"的变量或者含有"$cdc_"/"$wdc_"的文件变量。

每个driver的检测机制会不一样,此处给出的方案基于chromedriver。

1. Undetected-chromedriver

非常简单好用的包,直接pip安装,如下初始化driver即可,之后就像正常Selenium使用即可。

import undetected_chromedriver as uc
driver = uc.Chrome()
driver.get('https://nowsecure.nl')

2. 直接修改chromedriver executable

将key变量修改成任意不含"cdc"的字符。

/**
 * Returns the global object cache for the page.
 * @param {Document=} opt_doc The document whose cache to retrieve. Defaults to
 *     the current document.
 * @return {!Cache} The page's object cache.
 */
function getPageCache(opt_doc, opt_w3c) {
  var doc = opt_doc || document;
  var w3c = opt_w3c || false;
  // |key| is a long random string, unlikely to conflict with anything else.
  var key = '$cdc_asdjflasutopfhvcZLmcfl_';
  if (w3c) {
    if (!(key in doc))
      doc[key] = new CacheWithUUID();
    return doc[key];
  } else {
    if (!(key in doc))
      doc[key] = new Cache();
    return doc[key];
  }
}

这两种本质上没有太大的区别,undetected-chromedriver本质上是给chromedriver启动时打上了一个补丁,完成了修改key的那一步

def patch_exe(self):
    """
    Patches the ChromeDriver binary
    :return: False on failure, binary name on success
    """
    logger.info("patching driver executable %s" % self.executable_path)

    linect = 0
    replacement = self.gen_random_cdc() #此处修改了cdc的名称
    with io.open(self.executable_path, "r+b") as fh:
        for line in iter(lambda: fh.readline(), b""):
            if b"cdc_" in line:
                fh.seek(-len(line), 1)
                newline = re.sub(b"cdc_.{22}", replacement, line)
                fh.write(newline)
                linect += 1
        return linect

*具体可参考这篇stackoverflow文章文章来源地址https://www.toymoban.com/news/detail-509495.html

到了这里,关于Python Selenium绕过Cloudflare抓取网页的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 绕过 IP 封锁:有效的网页抓取策略

    代理服务器已成为希望克服 IP 封锁并有效收集数据的网络抓取爱好者不可或缺的工具。 随着越来越多的网站实施反抓取措施,采用这些策略以确保抓取操作成功至关重要。 在本指南中,我们将探索经过验证的技术来绕过 IP 阻止,并在代理服务器的帮助下最大限度地提高网络

    2024年01月20日
    浏览(41)
  • 100天玩转python——day67 使用Selenium抓取网页动态内容

    根据权威机构发布的全球互联网可访问性审计报告,全球约有四分之三的网站其内容或部分内容是通过JavaScript动态生成的,这就意味着在浏览器窗口中“查看网页源代码”时无法在HTML代码中找到这些内容,也就是说我们之前用的抓取数据的方式无法正常运转了。解决这样的

    2024年02月09日
    浏览(56)
  • 如何使用Python的Selenium库进行网页抓取和JSON解析

    随着互联网的快速发展,网页抓取和数据解析在许多行业中变得越来越重要。无论是电子商务、金融、社交媒体还是市场调研,都需要从网页中获取数据并进行分析。Python的Selenium库作为一种自动化测试工具,已经成为许多开发者的首选,因为它提供了强大的功能和灵活性。

    2024年02月10日
    浏览(299)
  • 使用Selenium抓取网页动态内容

    Selenium 是一个自动化测试工具,支持多种浏览器,包括 Chrome、Firefox、Edge 等,具有强大的浏览器自动化能力,可以用于Web应用程序的自动化测试、数据挖掘等领域。Selenium的主要特点有: 支持多种浏览器 Selenium支持多种浏览器,包括Chrome、Firefox、Edge、Safari等,可以满足不同

    2023年04月25日
    浏览(79)
  • 深入解析Cloudflare五秒盾与爬虫绕过技巧

      最近一个朋友发现一个比较有趣的网站,他说正常构造一个HTTP请求居然拿不到网站页面的信息,网站页面如下: 别看它只是一个普普通通的小说网站。随后我在本地环境验证了一下,果不其然得到了以下信息: 从上面反馈的信息中来看的话,倒是跟之前碰到的一个境外

    2024年02月08日
    浏览(40)
  • Python爬虫抓取网页

    本节讲解第一个 Python 爬虫实战案例:抓取您想要的网页,并将其保存至本地计算机。 首先我们对要编写的爬虫程序进行简单地分析,该程序可分为以下三个部分: 拼接 url 地址 发送请求 将照片保存至本地 明确逻辑后,我们就可以正式编写爬虫程序了。 本节内容使用 urll

    2024年02月08日
    浏览(49)
  • 使用Cloudflare Warp绕过GPT的IP ban

    ubuntu 22.04下的lnmp环境 v2ray ws + tls + cdn 推荐使用一键安装脚本来安装: bash (curl -fsSL git.io/warp.sh) wg  附项目地址:https://github.com/P3TERX/warp.sh 也可以手动安装,详见wiregurad官方文档 ViRb3/wgcf 是 Cloud­flare WARP 的非官方 CLI 工具,可以通过wgcf来模拟warp客户端注册账号,生成通用配

    2024年02月05日
    浏览(46)
  • 爬虫:绕过5秒盾Cloudflare和DDoS-GUARD

    本文章仅供技术研究参考,勿做它用! 返回的页面中不是目标数据,而是包含上面的代码: Just a moment... 或者第一次打开网页的时候: 这几个特征就是被Cloudflare保护的网站,熟称5秒盾。 安装 cloudscraper 将代码中的requests 替换成scraper即可,其他和requests一样正常使用。 如果

    2024年02月10日
    浏览(41)
  • 【Python】【进阶篇】五、Python爬虫的抓取网页

    Python 爬虫应用案例:爬取目标的网页,并将其保存到本地。 对要编写的爬虫程序进行分析,可以简单分为为以下三个部分: 目标 url 地址 发送请求 将响应数据保存至本地 明确逻辑后,我们就可以正式编写爬虫程序了。 在这里我们使用标准库 urllib 库来编写爬虫,导入所需

    2023年04月10日
    浏览(52)
  • 如何使用 Python 爬虫抓取动态网页数据

    随着 Web 技术的不断发展,越来越多的网站采用了动态网页技术,这使得传统的静态网页爬虫变得无能为力。本文将介绍如何使用 Python 爬虫抓取动态网页数据,包括分析动态网页、模拟用户行为、使用 Selenium 等技术。 在进行动态网页爬取之前,我们需要先了解动态网页和静

    2023年04月24日
    浏览(74)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包