跳转到主要内容
AdsCrawl Scrapers 是覆盖 81 个站点的 Python 爬虫示例集。每个站点目录包含解析代码、运行脚本、在线测试和历史输出样例。你可以从某个站点示例开始修改,也可以复用公共远程浏览器客户端编写自己的解析器。

查看源码

浏览站点模块、运行脚本和完整爬虫目录。

Python SDK

了解身份验证、API 方法和远程 CDP 会话。

安装与配置

准备 Git、Python 3.10 或更新版本,以及 AdsCrawl API Key。爬虫仓库对 Python 版本的要求高于独立 SDK。 在终端中运行:
可编辑安装会提供 adscrawl_scrapers、AdsCrawl SDK、Playwright、解析器和开发测试依赖。这些示例连接的是远程 Chromium 浏览器,无需执行 playwright install chromium。
运行爬虫或站点在线测试会消耗 AdsCrawl 额度。运行前先检查 run.py 中的 URL、日期和页数限制。API Key 应通过环境变量配置,不要提交到代码仓库。

示例:Bing 搜索与相关关键词

在仓库根目录运行自带脚本:
脚本调用 bing.py 中的两个函数: 自带 run.py 使用 web scraping emails 作为搜索词,最多采集三页,并将结果保存到 bing-scraper/ 下的 results/serps.json 和 results/keywords.json。 如果要修改搜索词并先采集一页,将下面的代码保存为 bing-scraper/custom.py,然后在该目录执行 python custom.py:
搜索结果包含 position、title、url、origin、domain、description 和 date,部分值可能缺失或为 null。Bing 对某些搜索词可能不展示相关关键词。该模块显式使用 countryCode="GB",因此默认国家环境变量不会覆盖它的线路。

示例:将 ChatGPT 回答保存为 Markdown

从仓库根目录运行:
自带脚本调用 chatgpt.scrape_conversation(prompt),将返回的 Markdown 保存到 chatgpt-scraper/results/conversation.md。修改 run.py 中的 prompt 即可调整问题。 也可以将下面的代码保存为 chatgpt-scraper/custom.py,然后在该目录执行 python custom.py:
这个示例通过远程浏览器操作 ChatGPT 网页,再将页面内容转换为 Markdown。返回文本可能包含回答之外的页面内容,可用性取决于网站当前界面和访问要求。

选择其他站点

进入对应站点目录,查看 run.py,修改输入后在该目录运行。不同站点的函数签名和输出结构各不相同;bing.py 等是站点目录中的本地模块,并非已安装的 adscrawl SDK 的子模块。 上表列出仓库已有示例;使用前请查看验证报告中对应函数的状态。完整内容见 81 个站点目录和机器可读函数清单。

并发、地区与会话

例如,在 macOS 或 Linux 中配置:
请在启动 Python 前设置变量。PowerShell 对应写法为 $env:ADSCRAWL_CONCURRENCY = "1" 和 $env:ADSCRAWL_DEFAULT_COUNTRY = "US"。 站点显式设置的 countryCode 优先。自定义 proxy 不能与 countryCode 同时传入。多个客户端或进程会分别占用会话,需要将它们的总用量一起计算。 大多数示例通过 AsyncAdsCrawl.cdp.create 创建浏览器,由 Playwright 经 CDP 连接并获取 HTML、网络响应,最后用 cdp.close 释放会话。命名会话可在一次站点操作中复用 Cookie、存储和浏览器连接。独立脚本使用 adscrawl_scrapers.run(...) 在退出时关闭公共客户端。Air France 使用同步 SDK,Google AI Mode 使用 spa.extract。

编写自己的解析器

安装仓库并配置 API Key 后,可以将下面的代码保存为 Python 脚本运行:
response.content 提供页面正文,response.selector 用于 CSS/XPath 提取,response.network 包含捕获的 XHR/fetch 响应。响应正文为 JSON 时可以调用 response.json()。异步上下文管理器会在退出时关闭该客户端的远程会话。

验证结果

仓库的逐站实测报告记录了 2026 年 10 月 27 日的 81 站测试。该轮 Bing 测试返回 30 条搜索结果和 8 条相关关键词;ChatGPT 测试的回答包含 “Paris”。这些数量是报告中测试的观察结果,不是上方代码每次运行的保证输出。 整套现有测试通过的站点为 App Store、Bing、ChatGPT、Fashionphile、Idealo、IMDb、Imovelweb、Reddit、Rightmove、Shopify、Similarweb、Ticketmaster、Twitter / X、Vestiaire Collective 和 Zillow。通过状态仅适用于当日已测试的函数及输入。部分站点 README 仍保留较早的验证说明,本轮证据和范围以这份带日期的报告为准。 仓库已有的 results/ 文件是历史样例。使用数据前应检查本次新生成的输出和必要字段;空结果不能证明爬虫工作正常。 在仓库根目录运行离线检查,无需 API Key,也不消耗额度:
已配置 API Key 时,可以对 Bing 执行在线测试:
最后一条命令会消耗额度。默认 CI 运行离线检查;指定站点的在线测试工作流需要手动触发。

常见问题

公共传输层不会自动重试计费请求。部分站点模块自行实现了重试循环,增加任务量前应查看对应代码。更多信息见额度与限制、远程 CDP和仓库传输说明。