Python获取网页HTML遇403错误及Cloudflare验证问题求助
绕过Cloudflare验证获取目标网站HTML代码
当遇到Cloudflare的403验证页面时,普通的requests或urllib库无法绕过JS验证,以下是两种可行的解决方案:
方法一:使用cloudscraper库
这个库专门针对Cloudflare的反爬机制,会自动模拟浏览器的JS验证流程,无需额外配置。
- 先安装库:
pip install cloudscraper
- 示例代码:
import cloudscraper # 创建scraper实例 scraper = cloudscraper.create_scraper() # 发起请求 response = scraper.get("你的目标网站URL") # 验证状态并获取HTML if response.status_code == 200: target_html = response.text print(target_html)
方法二:使用Playwright模拟真实浏览器
通过完全模拟真实浏览器的渲染行为,能绕过绝大多数Cloudflare的检测,适合更复杂的验证场景。
- 先安装依赖:
pip install playwright playwright install chrome
- 示例代码:
from playwright.sync_api import sync_playwright with sync_playwright() as p: # 启动无头Chrome浏览器 browser = p.chromium.launch(headless=True) page = browser.new_page() # 访问目标网站,自动等待页面加载完成 page.goto("你的目标网站URL", wait_until="networkidle") # 获取页面完整HTML target_html = page.content() print(target_html) browser.close()
注意事项
- 控制请求频率,避免短时间内大量请求导致IP被封禁
- 若目标网站限制单一IP请求,可搭配代理IP池分散请求来源
- 部分网站可能触发Cloudflare的人机验证码,这种情况需手动处理或借助第三方验证码识别服务(注意合规性)
内容的提问来源于stack exchange,提问作者Vasya
相关产品推荐
相关产品推荐

