Python Selenium绕过Cloudflare抓取网页

本文介绍了如何使用Python的Selenium库绕过Cloudflare的检测机制。主要提供了两种方法:一是利用undetected-chromedriver包,二是直接修改chromedriver可执行文件中的特定变量。这些方法帮助Selenium在不被识别为bot的情况下正常访问网站。
摘要由CSDN通过智能技术生成

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 getPa
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
绕过Cloudflare的反机器人页面是一项挑战性的任务,但可以使用Python模块来实现。以下是一种方法: 首先,您需要使用Python的requests库来发送HTTP请求。确保您已在Python环境中安装了该库。 然后,您可以使用模块如pyppeteer或selenium来模拟一个浏览器环境,这样您就可以加载和渲染Cloudflare的反机器人页面。 通过使用pyppeteer,您可以使用以下代码绕过Cloudflare的反机器人页面: ```python import asyncio from pyppeteer import launch async def bypass_cloudflare(url): browser = await launch() page = await browser.newPage() await page.goto(url) await page.waitFor(3000) # 等待页面加载完全,时间可以根据需要调整 content = await page.content() await browser.close() return content url = "https://example.com" # 替换为目标网站的URL content = asyncio.get_event_loop().run_until_complete(bypass_cloudflare(url)) print(content) ``` 安装pyppeteer:`pip install pyppeteer` 通过上述代码,您将能够获取完全加载了的Web页面的内容。您可以根据需要提取所需的信息进行后续操作。 需要注意的是,另一种选择是使用selenium模块,但它需要与适当的浏览器驱动程序(如Chrome或Firefox驱动程序)进行交互来模拟浏览器环境。 总之,这是绕过Cloudflare反机器人页面的一种方法。请注意,在实践中绕过这类安全措施可能违反网站的使用条款,具体法律法规以及伦理规范。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值