0

0

如何绕过 Zoopla 网站的 Cloudflare 防护进行合法数据采集

聖光之護

聖光之護

发布时间:2026-01-19 14:51:13

|

650人浏览过

|

来源于php中文网

原创

如何绕过 Zoopla 网站的 Cloudflare 防护进行合法数据采集

zoopla 使用 cloudflare 严格反爬,直接用 requests 发起请求会返回 403 错误;需结合 selenium 模拟真实浏览器行为,并隐藏自动化特征,才能成功获取页面内容。

Zoopla(zoopla.co.uk)作为英国主流房产平台,对爬虫防护极为严格——其背后部署了 Cloudflare 的 WAF(Web Application Firewall),不仅校验 User-Agent 和请求头,还会检测浏览器指纹、navigator.webdriver 属性、自动化扩展痕迹等。因此,仅靠 requests + 自定义 Headers(如常规 UA)几乎必然触发 403 Forbidden 响应,正如示例代码中所遇问题。

✅ 正确做法是使用 Selenium 配合无头 Chrome 的深度伪装策略,关键在于消除自动化“蛛丝马迹”。以下为经过验证的完整解决方案:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
import time

# 配置 Chrome 选项(推荐使用最新 chromedriver)
options = Options()
options.add_argument("--no-sandbox")
options.add_argument("--disable-dev-shm-usage")
options.add_argument("--disable-blink-features=AutomationControlled")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
options.add_argument("--headless")  # 可选:无界面运行

# 启动驱动(请确保 chromedriver 在 PATH 中,或指定 service=Service("path/to/chromedriver"))
driver = webdriver.Chrome(options=options)

# 关键一步:覆盖 navigator.webdriver 属性(在页面加载前执行)
driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', {
    'source': '''
        Object.defineProperty(navigator, 'webdriver', {
            get: () => undefined
        });
    '''
})

try:
    url = "https://www.zoopla.co.uk/to-rent/property/west-midlands/handsworth/sandwell-road/b21-8nl/?q=B21%208NL&radius=1"
    driver.get(url)

    # 等待页面加载完成(建议用 WebDriverWait 替代固定 sleep,此处简化示例)
    time.sleep(3)

    if "403" in driver.title or "Cloudflare" in driver.page_source:
        print("⚠️  仍被拦截:可能需更换 IP、添加更多指纹伪装或启用真实浏览器窗口调试")
    else:
        print("✅ 页面加载成功,状态码:", driver.execute_script("return document.readyState"))
        # 示例:提取标题
        title = driver.title
        print("页面标题:", title)

finally:
    driver.quit()

? 重要注意事项

讯飞智作-虚拟主播
讯飞智作-虚拟主播

讯飞智作是一款集AI配音、虚拟人视频生成、PPT生成视频、虚拟人定制等多功能的AI音视频生产平台。已广泛应用于媒体、教育、短视频等领域。

下载
  • 遵守 robots.txt 与服务条款:Zoopla 明确禁止未经许可的自动化抓取(参见 https://www.zoopla.co.uk/robots.txt),本方案仅限学习、个人研究或已获授权场景使用;商用前务必联系官方获取 API 接入许可。
  • IP 与频率限制:即使绕过前端检测,高频请求仍可能触发 IP 封禁。务必加入 time.sleep(2–5) 间隔,避免连续请求;生产环境建议搭配代理池与随机 UA 轮换。
  • 维护成本高:Cloudflare 规则持续升级,此类方案需定期更新(如 CDP 注入逻辑、等待策略、元素定位方式)。长期项目强烈推荐使用 Zoopla 官方 API(如有)或合规第三方数据服务。
  • 替代方案提醒:若仅需基础房产信息,可考虑 UK 政府开放数据(如 Land Registry Price Paid Data)或合法聚合平台(e.g., Rightmove API via partner program)。

总之,技术上可行 ≠ 法律与伦理上合理。尊重网站规则、控制请求节奏、优先选用官方渠道,才是可持续数据采集的核心原则。

相关专题

更多
chrome什么意思
chrome什么意思

chrome是浏览器的意思,由Google开发的网络浏览器,它在2008年首次发布,并迅速成为全球最受欢迎的浏览器之一。本专题为大家提供chrome相关的文章、下载、课程内容,供大家免费下载体验。

787

2023.08.11

chrome无法加载插件怎么办
chrome无法加载插件怎么办

chrome无法加载插件可以通过检查插件是否已正确安装、禁用和启用插件、清除插件缓存、更新浏览器和插件、检查网络连接和尝试在隐身模式下加载插件方法解决。更多关于chrome相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

733

2023.11.06

http与https有哪些区别
http与https有哪些区别

http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1990

2024.08.16

PHP 命令行脚本与自动化任务开发
PHP 命令行脚本与自动化任务开发

本专题系统讲解 PHP 在命令行环境(CLI)下的开发与应用,内容涵盖 PHP CLI 基础、参数解析、文件与目录操作、日志输出、异常处理,以及与 Linux 定时任务(Cron)的结合使用。通过实战示例,帮助开发者掌握使用 PHP 构建 自动化脚本、批处理工具与后台任务程序 的能力。

28

2025.12.13

PHP WebSocket 实时通信开发
PHP WebSocket 实时通信开发

本专题系统讲解 PHP 在实时通信与长连接场景中的应用实践,涵盖 WebSocket 协议原理、服务端连接管理、消息推送机制、心跳检测、断线重连以及与前端的实时交互实现。通过聊天系统、实时通知等案例,帮助开发者掌握 使用 PHP 构建实时通信与推送服务的完整开发流程,适用于即时消息与高互动性应用场景。

3

2026.01.19

微信聊天记录删除恢复导出教程汇总
微信聊天记录删除恢复导出教程汇总

本专题整合了微信聊天记录相关教程大全,阅读专题下面的文章了解更多详细内容。

41

2026.01.18

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

101

2026.01.16

全民K歌得高分教程大全
全民K歌得高分教程大全

本专题整合了全民K歌得高分技巧汇总,阅读专题下面的文章了解更多详细内容。

148

2026.01.16

C++ 单元测试与代码质量保障
C++ 单元测试与代码质量保障

本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

57

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Node.js 教程
Node.js 教程

共57课时 | 8.9万人学习

CSS3 教程
CSS3 教程

共18课时 | 4.7万人学习

Vue 教程
Vue 教程

共42课时 | 6.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号