您在 Bright Data Scraper Studio 中构建的每个爬虫都由两部分组成:导航目标站点的 interaction code(交互代码) 和从所得 HTML 中提取结构化数据的 parser code(解析器代码)。本页将带您过一遍这些核心概念,让您能够自信地阅读、编写并调试爬虫。Documentation Index
Fetch the complete documentation index at: https://docs.brightdata.com/llms.txt
Use this file to discover all available pages before exploring further.
前提条件
- 基础的 JavaScript 知识(变量、函数、异步控制流)
- 一个已激活的 Bright Data 账户
爬虫的两个阶段是什么?
Bright Data Scraper Studio 爬虫在每个页面上分两个阶段运行:- Interaction(交互) 在站点内移动以到达数据。这包括发送 GET 或 POST 请求、跟随链接、处理分页、提交表单;在 Browser worker 上还包括点击、输入、滚动以及等待元素出现。
- Parsing(解析) 读取页面 HTML(或捕获到的 JSON 负载)并返回一条结构化记录。
parse()。这会运行解析器代码并返回其结果。随后调用 collect() 将记录追加到最终数据集:
如何构建多阶段爬虫?
许多爬取任务需要多次跳转,例如”访问搜索页面,然后跟随每个结果 URL,再提取每个产品”。Bright Data Scraper Studio 通过 stages(阶段)来处理这种情况。每个阶段都是独立的浏览器会话,next_stage({...}) 会将一个新输入排队给下一个阶段。
下面的示例对一个电商网站的搜索结果进行跨页爬取,并跟随每条列表进入其详情页。
阶段 1:分发搜索结果页
- 阶段 1 导航到搜索页并解析出总页数。
- 阶段 1 对每个结果页调用一次
next_stage({search_page}),每次调用都会成为阶段 2 的一个新输入。 - 阶段 2 导航到每个结果页并解析出所有列表 URL。
- 阶段 2 对每条列表调用一次
next_stage({listing_url}),每次调用都会成为阶段 3 的一个新输入。 - 阶段 3 导航到每个产品页并调用
collect(parse())将记录加入数据集。
next_stage() 分发比在单一阶段中串行翻页快得多。
应该使用哪种 worker 类型?
Bright Data Scraper Studio 提供两种 worker 类型:- Browser worker:真实的无头浏览器。在页面通过 JavaScript 渲染数据,或需要点击、滚动、输入或捕获网络流量时使用。
- Code worker:原始 HTTP 请求。更快也更便宜,但无法运行 JavaScript 或与页面交互。
wait、click、scroll_*、tag_*、type 等)在 Code worker 上调用时会抛错。完整列表参见 Worker 类型。
Scraper Studio 如何处理封锁与 CAPTCHA?
规模化爬取每次都会遇到同一类防御:IP 封锁、速率限制、CAPTCHA、指纹识别和机器人检测。Bright Data Scraper Studio 通过 Bright Data 的代理基础设施和 Web Unlocker API 路由每个请求,因此爬虫会:- 根据爬虫设置在住宅、ISP、数据中心或移动 IP 之间轮换
- 自动用新的对端会话重试被封锁的请求
- 在您调用
solve_captcha()时解决常见 CAPTCHA - 在 Browser worker 上模拟真实浏览器指纹
相关内容
Worker 类型
在 Browser worker 与 Code worker 之间做选择
Scraper Studio 函数参考
交互命令与解析器命令的完整参考
开发爬虫
在 IDE 中构建爬虫的分步演练
最佳实践
构建快速、可靠爬虫的推荐模式