OxyCopilot
使用 OxyCopilot 自动化抓取。了解如何使用简单的自然语言提示生成网页爬虫 API 负载、自定义解析器和浏览器指令。
OxyCopilot 是一个免费 网页爬虫API 功能,可简化登机流程并帮助用户为复杂用例找到有效的解决方案,且无需编码知识。OxyCopilot 目前包含三个独立功能:
爬虫构建器
自定义解析器 构建器
浏览器指令构建器
可在以下位置访问 OxyCopilot: 网页 网页爬虫API Playground 在 Oxylabs 控制台中。
爬虫构建器
OxyCopilot 可帮助你为 网页爬虫API 配置爬虫(并生成请求负载),无需理解文档或字段逻辑。
工作原理
第 1 步:提供 URL 和提示
URL: 提供要抓取的 URL。
提示: 描述你的需求(例如,本地化、JS 渲染等)。

第 2 步:解析
你有三种处理解析的选项:
自定义解析器: 选择“添加解析指令”以使用 自定义解析器构建器.
专用解析器: 如果该 URL 来自我们提供专用解析器的网站并且你想使用它,选择“继续使用专用解析器”。
不解析: 如果不需要结构化数据,可选择继续而不解析。
如果该 URL 属于我们有专用解析器的网站,但你不需要结构化数据,请选择“继续使用专用解析器”并在 playground 的设置中禁用 parse 参数。避免使用退出按钮,因为它不会保存预填参数。


第 3 步:审查请求
基于你的提示,OxyCopilot 会在 网页爬虫API Playground 中预填必要参数。你会看到针对你的用例的具体请求代码和参数,并且可以根据需要调整参数。
第 4 步:提交请求并复制
如果一切正常,提交请求以查看输出并检查其是否按预期工作。然后,复制请求代码以在后续使用 网页爬虫API 的抓取任务中使用。
示例
URL
https://www.amazon.de/s?k=adidas提示
从提供的 URL 抓取 Amazon 搜索页面并将结果本地化为波兰。AI 生成的参数(JSON)
{
"source": "amazon_search",
"query": "adidas",
"geo_location": "PL",
"domain": "de"
}AI 生成的请求代码

自定义解析器构建器
利用 自定义解析器 功能与 OxyCopilot 一起构建解析器,而无需编写代码或手动分析网站结构。
工作方式
第 1 步:提供 URL(多个)和提示
URL(多个): 你最多可以提供 3 个 URL 用于生成解析指令。OxyCopilot 使用所提供 URL 的 HTML 来确定提取所需字段的最佳逻辑。
提示: 提示是构建自然语言模式的关键组件,该模式作为生成实际解析指令的基础。提示应清楚描述需要解析的字段。

第 2 步(可选):调整解析模式
此步骤允许你微调解析模式以更好地满足需求或排查任何问题。
解析模式概览

此表可视化 AI 用于生成解析指令的输入。模式定义了需要解析哪些字段,并由各种对象类型组成(在下方的 表格 中解释)。
模式中的每个项必须包含:
名称: 这将作为解析指令中的对象键,并在解析后数据中可见。
说明 (可选但推荐):有助于提高解析准确性。
模式调整
重新排序项目: 使用左侧的点拖放项目以更改其顺序(只能移动同一嵌套级别内的项目)。
编辑项目: 单击编辑图标以修改任何字段。
删除项目: 你可以删除父级层的任何项目。
添加新项目: 在父级层添加新项目。
更新模式后,点击 "刷新输出" 按钮以重新生成指令并预览解析的数据。
对象类型说明
字符串
单个文本输出
“title”: “示例产品标题”
数字
单个数字
“price”: 9.99
字符串数组
文本输出列表
“products”: [“product 1”, “product 2”, “product 3”]
数字数组
数字列表
“pages”: [1, 2, 3]
对象数组
对象/项的列表,每项内部可以有自己的对象(在解析指令的_items 块中)
“related_items”: [
{
“title”: “product 1”,
“price”: 9.99
},
{
“title”: “product 2”,
“price”: 15.99
}
]处理对象数组
选择“对象数组”: 该选项会添加一个子对象和按钮。
填写对象名称: 要将项目保存到模式中,必须填写父对象和子对象的名称。完成后,勾选标记会变为绿色。
子对象要求: “对象数组”必须至少有一个子项。
测试指令
默认情况下,解析数据基于第 1 步中提供的第一个 URL。 第 1 步. 你也可以提供不同的 URL 来测试解析指令:

指令是基于初始 URL 生成的,并不考虑测试 URL。编辑提示或 URL 会重置模式,需要完全重新生成。
第 3 步:复制/保存指令并集成到抓取任务中
一旦指令令人满意:
使用 "复制" 按钮以复制指令并将其粘贴到你的爬虫代码中。
或者,将指令保存到你的 网页爬虫API Playground 会话,调整其他请求参数,测试,然后以你偏好的编程语言复制完整请求代码。

示例
URL
https://sandbox.oxylabs.io/products/1提示
我想解析一个产品页面。解析的数据应包含以下字段:
- product_title:包含产品标题的文本字段
- price:包含产品价格的数字字段
- related_products:一个列表,包含主产品信息下方显示的相关产品标题解析模式
字符串
product_title
产品标题
数字
价格
产品价格
字符串数组
related_products
主产品信息下方的相关产品标题
解析指令
{
"product_title": {
"_fns": [
{
"_fn": "xpath_one",
"_args": [
"//h2[@class=\"title css-1k75zwy e1pl6npa11\"]/text()",
"//div[@class=\"product-info-wrapper css-m2w3q2 emlf3670\"]/h2/text()",
"//div[@id=\"__next\"]/main/div/div/div/div[2]/div[1]/div[2]/div[2]/h2/text()"
]
},
{
"_fn": "regex_search",
"_args": [
"^\\s*(.[\\s\\S]*?)\\s*$",
1
]
}
]
},
"price": {
"_fns": [
{
"_fn": "xpath_one",
"_args": [
"//div[@class=\"price css-o7uf8d e1pl6npa6\"]/text()",
"//div[@class=\"product-info-wrapper css-m2w3q2 emlf3670\"]/div[4]/text()",
"//div[@id=\"__next\"]/main/div/div/div/div[2]/div[1]/div[2]/div[2]/div[4]/text()"
]
},
{
"_fn": "amount_from_string"
}
]
},
"related_products": {
"_fns": [
{
"_fn": "xpath",
"_args": [
"//div/div[@class=\"product-card css-e8at8d eag3qlw10\"]/a[1]/h4/text()",
"//div[@id=\"__next\"]/main/div/div/div/div[2]/div[2]/div/a[1]/h4/text()",
"//div[@class=\"related-products css-1rinft1 emlf3670\"]/div/a[1]/h4/text()",
"//html[@lang=\"en\"]/body/div/main/div/div/div/div[2]/div[2]/div/a[1]/h4/text()",
"//div/div[@class=\"product-card css-e8at8d eag3qlw10\"]//h4[@class=\"title css-7u5e79 eag3qlw7\"]/text()",
"//div[@id=\"__next\"]/main/div/div/div/div[2]/div[2]/div//h4[@class=\"title css-7u5e79 eag3qlw7\"]/text()",
"//div[@class=\"related-products css-1rinft1 emlf3670\"]/div//h4[@class=\"title css-7u5e79 eag3qlw7\"]/text()",
"//div/div[@class=\"product-card css-e8at8d eag3qlw10\"]//a[@class=\"card-header css-o171kl eag3qlw2\"]/h4/text()",
"//html[@lang=\"en\"]/body/div/main/div/div/div/div[2]/div[2]/div//h4[@class=\"title css-7u5e79 eag3qlw7\"]/text()",
"//div[@id=\"__next\"]/main/div/div/div/div[2]/div[2]/div//a[@class=\"card-header css-o171kl eag3qlw2\"]/h4/text()",
"//div[@class=\"related-products css-1rinft1 emlf3670\"]/div//a[@class=\"card-header css-o171kl eag3qlw2\"]/h4/text()",
"//html[@lang=\"en\"]/body/div/main/div/div/div/div[2]/div[2]/div//a[@class=\"card-header css-o171kl eag3qlw2\"]/h4/text()"
]
},
{
"_fn": "regex_search",
"_args": [
"^\\s*(.[\\s\\S]*?)\\s*$",
1
]
}
]
}
}解析后数据
{
"price": 91.99,
"product_title": "塞尔达传说:时之笛",
"related_products": [
"塞尔达传说:梅祖拉的假面",
"印第安纳·琼斯与地狱机器"
],
"parse_status_code": 12000
}通过 API 生成解析指令
如果你想为所处理的各种网站生成大量不同的解析指令集,可以通过 API 构建解析指令 —— 参见 解析指令生成器 API 了解其实现方法。
浏览器指令构建器
你可以使用 OxyCopilot 构建复杂的页面交互脚本,而无需分析站点结构或手动编写 浏览器指令.
工作方式
第 1 步:提供 URL 和提示
URL: 请提供单个 URL 以生成浏览器指令。OxyCopilot 使用所提供 URL 的 HTML 来确定如何为你需要的网页交互编写脚本。
提示: 提示对于构建浏览器指令至关重要。请明确说明在页面打开后你希望执行的操作(例如:“滚动到底部,等待‘下一页’按钮加载,点击‘下一页’按钮”)。

第 2 步(可选):调整浏览器指令
此步骤允许你微调浏览器指令序列以更好地满足需求或排查任何问题。
浏览器指令概览

当 OxyCopilot 处理完你的输入后,它会显示已创建的浏览器指令序列。
你可以通过编辑、添加或删除步骤来调整该序列。
第 3 步:复制/保存指令并集成到抓取任务中
一旦指令令人满意,你可以将指令保存到你的 网页爬虫API Playground 会话,调整其他请求参数,测试,然后以你偏好的编程语言复制完整请求代码。

我们欢迎你的反馈和改进建议。如有需要,请通过以下方式与我们联系: [email protected] 或连接我们的 24/7 在线聊天支持。
最后更新于
这有帮助吗?

