Oxylabs Documentation
中文
搜索文档…
⌃K

Crawler(测试版)

介绍

Crawler 是一款让您抓取任何网站并选择有用内容并将其批量交付给您的爬虫 API 功能。您可以使用 Crawler 执行 URL 探索,抓取网站的所有页面,检索一个域上的所有 URL,以及其他用途。
如何抓取网站:分步指南
Crawler 会使用需要发送用户名和密码的基本 HTTP 身份认证
在使用Crawler之前,请仔细阅读此文档中筛选器使用统计部分有关于筛选器如何运作,以及使用此功能时您可能如何被收取费用的内容。
然后,逐渐熟悉可用的输入参数API 端点
请阅读集成部分,了解请求模板和模式。
如果您不知所措,并希望获得指导, 请通过官网微信、QQ,或24/7实时对话联系我们。

端点

Crawler 有许多您可以用来控制服务的端点:启动停止恢复您的作业,获取作业信息,并获得结果

创建新作业

使用这个端点来启动一项新的 Crawler 作业。
  • 端点: https://ect.oxylabs.io/v1/jobs
  • 方法: POST
  • 身份验证: Basic
  • 请求标头: Content-Type: application/json
承载内容示例:
{
"url": "https://example.com",
"filters": {
"crawl": [".*"],
"process": [".*"],
"max_depth": -1
},
"scrape_params": {
"source": "universal",
"user_agent_type": "desktop"
},
"output": {
"type_": "sitemap"
},
"upload": {
"storage_type": "s3",
"storage_url": "http://s3.amazonaws.com/{bucket_name}/"
},
"context": {
"follow_amazon_deals": false
}
}
示例响应:
{
"id": "10374369707989137859",
"client": "username",
"job_params": {
"url": "https://example.com",
"filters": {
"crawl": [".*"],
"process": [".*"],
"max_depth": -1
},
"scrape_params": {
"source": "universal",
"geo_location": null,
"user_agent_type": "desktop",
"render": null
},
"output": {
"type": "sitemap",
"selector": null
},
"upload": {
"storage_type": "s3",
"storage_url": "http://s3.amazonaws.com/{bucket_name}/"
},
"context": {
"follow_amazon_deals": false
}
},
"_links": [
{
"rel": "self",
"href": "http://ect.oxylabs.io/v1/jobs/10374369707989137859",
"method": "GET"
},
{
"rel": "stop-indexing",
"href": "http://ect.oxylabs.io/v1/jobs/10374369707989137859/stop-indexing",
"method": "POST"
}
],
"events": [],
"created_at": "2021-11-19 14:32:01",
"updated_at": "2021-11-19 14:32:01"
}

停止作业

使用这个端点来停止某项作业。
  • 端点: https://ect.oxylabs.io/v1/jobs/{id}/stop-indexing
  • 方法: POST
  • 身份验证: Basic

恢复作业

使用这个端点来恢复某项作业。
  • 端点: https://ect.oxylabs.io/v1/jobs/{id}/stop-indexing
  • 方法: POST
  • 身份验证: Basic
示例响应:
null

获取作业信息

使用这个端点来获取现有工作的作业信息。
  • 端点: https://ect.oxylabs.io/v1/jobs/{id}
  • 方法: GET
  • 身份验证: Basic
示例响应:
{
"id": "10374369707989137859",
"client": "username",
"job_params": {
"url": "https://example.com",
"filters": {
"crawl": [],
"process": [],
"max_depth": -1
},
"scrape_params": {
"source": "universal",
"geo_location": null,
"user_agent_type": "desktop",
"render": null
},
"output": {
"type": "sitemap",
"selector": null
},
"upload": {
"storage_type": "s3",
"storage_url": "http://s3.amazonaws.com/{bucket_name}/"
},
"context": {
"follow_amazon_deals": false
}
},
"_links": [
{
"rel": "self",
"href": "http://ect.oxylabs.io/v1/jobs/10374369707989137859",
"method": "GET"
}
],
"events": [
{
"event": "job_indexing_finished",
"status": "done",
"reason": null,
"created_at": "2021-11-19 14:32:16"
},
{
"event": "job_results_aggregated",
"status": "done",
"reason": null,
"created_at": "2021-11-19 14:32:17"
}
],
"created_at": "2021-11-19 14:32:01",
"updated_at": "2021-11-19 14:32:01"
}

获取网站地图

使用这个端点来获取处理作业时发现的 URL 列表。
  • 端点: https://ect.oxylabs.io/v1/jobs/{id}/sitemap
  • 方法: GET
  • 身份验证: Basic
示例响应:
{
"results": [
{
"sitemap": [
"https://example.com",
"https://example.com/url1.html",
"https://example.com/url2.html",
"https://example.com/url3.html"
]
}
]
}

获取汇总结果

使用这个端点来获取某项作业的结果。其结果可能包括以下内容之一:
  • 一个索引(URL 的列表);
  • 一个包含所有经解析结果的汇总文件;
  • 一个包含所有 HTML 结果的汇总文件;
端点: https://ect.oxylabs.io/v1/jobs/{id}/aggregate
方法: GET
身份验证: Basic

查询参数

下面是您可以使用的所有可用参数。
参数
描述
默认值
url
起始点的 URL
-
filters
这些参数用于配置抓取作业的广度与深度,以及确定应将哪些 URL 包括在最终结果中。
-
filters:crawl
指定 Crawler 将在最终结果中包括哪些 URL。请访问此部分了解更多信息。
-
filters:process
指定 Crawler 将抓取哪些 URL。请访问此部分了解更多信息。
-
filters:max_depth
确定 Crawler 将遵循的 URL 链的最大长度。请访问此部分了解更多信息。
-1
scrape_params
这些参数用来微调我们执行抓取作业的方式。例如,您可能希望我们在抓取网站时执行 Javascript,或者您可能希望我们在某个特定地点使用代理。
-
scrape_params:source
请访问此部分了解更多信息。
-
scrape_params:geo_location
其结果应符合其地理位置。请访问此部分了解更多信息。
-
scrape_params:user_agent_type
设备类型和浏览器。请访问此部分了解更多信息。
desktop
scrape_params:render
请访问此部分了解更多信息。
-
output:type_
输出类型。我们可以返回一个网站地图(抓取时发现的 URL 列表)或一个包含 HTML 或经解析数据的汇总文件。请访问此部分了解更多信息。
-
upload
这些参数均用于描述您希望我们在完成作业后存储结果的云存储位置。请访问此部分了解更多信息。
-
upload:storage_type
定义您的云存储类型。唯一有效的值是 s3(AWS S3)。gcs(谷歌云存储)即将推出。
-
upload:storage_url
存储桶 URL。
-
- 必要参数

Scrape_params

您可以使用更多的爬虫 API 参数对您的配置进行微调。其大部分价值将取决于您使用的爬虫类型。
参数
描述
默认值
render
启用 JavaScript 渲染。当目标需要 JavaScript 加载内容时使用。如果您希望使用该功能,请将参数值设为 html更多信息
-

geo_location

其结果应符合其地理位置。您的 geo_location 参数值的格式将取决于您选择的 source。访问您选择的 source 文件以获取更多信息。例如,如果您选择的来源是 universal_ecommerce,请转到 电商爬虫 API -> 其他域名 -> 参数值,找到所解释的 geo_location 参数值。

render

启用 JavaScript 渲染。当目标需要 JavaScript 加载内容时使用。如果您希望使用该功能,请将参数值设为 html更多信息

source

source 让您指定在抓取时应使用哪种爬虫来执行抓取时的抓取作业。您应该使用的参数值取决于您提交的 URL。下表列出了您应该使用哪些 source 值。
重要事项:以下列表并不完整。在注册免费试用或购买后,您将获得完整的可用 source 值列表。
URL
Source
任意 AliExpress 网址
aliexpress
任意 Bing 网址
bing
任何 Baidu 网址
baidu
任意 Google 网址
google
任意 Idealo 网址
idealo
任何其他 URL
universal(用于网站地图或 HTML 输出)或 universal_ecommerce (用于经解析输出)

user_agent_type

设备类型和浏览器。单击此处查看完整列表。

筛选

筛选器让您控制您的抓取作业的广度与深度。我们将根据抓取到的 URL 数量向您开具发票,因此为您正确设置您的筛选器很重要。否则,您可以让 Crawler 抓取更多没有必要的 URL。
processcrawl 筛选器完全依靠正则表达式 (regex) 来决定是否应该对一个 URL(或与之相关的结果)进行某些操作。网上不乏关于正则表达式的信息,因此我们不打算详细介绍正则表达式的构造。
一些我们认为有用的与 Regex 有关的链接:
重要的。我们在默认情况下不添加任何 processcrawl 筛选器。这意味着,如果您不为这些筛选器提交任何正则表达式,就不会进行抓取(因为我们不会跟踪任何 URL),也不会有任何结果被包含在网站地图/汇总结果中。

process

process 筛选器让您指定将哪些 URL 包括在作业结果中。我们发现的每个 URL 都将进行评估,以确定是否符合 crawl 筛选器。如果它们匹配,该 URL(或该 URL 的内容)将包括在作业结果中。作为参数值,请以 JSON 数组发送一个或多个正则表达式,像这样的:"process": [".e", ".c", ".t"]

crawl

Crawl 筛选器让您指定要抓取哪些 URL(除了起始点的 URL)并检查更多的 URL。简单来说,我们在抓取时发现的每个 URL 都将进行评估,以确定是否匹配抓取筛选器。如果它们匹配,我们将抓取有关 URL 以寻找更多的 URL。作为参数值,请以 JSON 数组中发送一个或多个正则表达式,像这样的:"indexable": [".e", ".c", ".t"]

max_depth

max_depth 值筛选器决定了 Crawler API 能够跟踪的 URL 链的最大长度。
描述
-1
抓取没有任何深度限制。这是默认设置。
0
只抓取起始页。
1
抓取在起始页中发现的所有 URL。
2
抓取在起始页 URL 中发现的所有 URL。
3
抓取在起始页 URL 中发现的所有 URL 内的 URL。
4
抓取在起始页 URL 中发现的所有 URL 内 URL 的 URL。
n
抓取 n * (all URLs found in) 起始页。
注意:Crawler 只会抓取与起始点 URL 所在域相同域中的 URL。其覆盖该设置的能力已列入我们的路线图。

输出

type_

type_ 参数决定了 Crawler 作业的输出将包含哪些内容。输出类型的划分如下:
描述
sitemap
URL 列表。
parsed
一份包含经解析汇总结果的 JSON 文件。
html
一份包含 HTML 汇总结果的 JSON 文件。
重要事项:以下列表并不完整。它只包含通用爬虫。这些爬虫是用来从我们没有定制爬虫的任何域名收集数据。在注册免费试用或购买后,您将获得完整的可用 source 值列表。

用量统计

在使用 Crawler 时,我们会根据抓取的 URL 数量向您开具发票。每次抓取的价格将与您常规爬虫 API 的使用价格相同。
您可以在此处阅读关于检查您的用量统计的信息。

集成

Postman

如果您想尝试所有的爬虫端点,则可以下载并使用该 Postman 集合

Swagger / OpenAPI

您可以查阅我们的 Swagger 文件 页面,其中包含 API 模式以及其他有用的信息。