你知道如何使用 OxyLabs Real-time Crawler for Bing 吗?这是 OxyLabs 官方最全面的介绍。
快速入门
Real-Time Crawler 专为重型数据检索操作而设计。你可以使用 Real-Time Crawler 访问各种必应网页。它能毫不费力地从搜索引擎中提取网页数据,不会出现任何延迟或错误。
必应使用的实时爬虫 基本 HTTP 身份验证 需要发送用户名和密码。
这是目前开始使用必应实时爬虫的最快方法。您将发送一个查询 阿迪达斯 至 bing_search 使用 实时 整合方法。不要忘记替换 用户名 和 密码 使用代理用户凭据。
curl --user "USERNAME:PASSWORD" 'https://realtime.oxylabs.io/v1/queries' -H "Content-Type: application/json" -d '{"source":"bing_search", "domain":"com", "query":"adidas"}'
如果您有任何本文件未涉及的问题,请联系您的客户经理或我们的支持人员,地址是 [email protected].
整合方法
Real-Time Crawler for Bing 支持三种集成方法,它们都有各自独特的优势:
- 推拉式.使用这种方法,现在需要与我们的端点保持活动连接,以检索数据。在发出请求后,我们的系统会在任务完成后自动 ping 用户服务器(请参阅 回调).这种方法可以节省计算资源,而且易于扩展。
- 实时.该方法要求用户与我们的端点保持活动连接,以便在任务完成时成功获取结果。这种方法可以在一个服务中实现,而推拉法则需要两个步骤。
- 超级用户接口.这种方法与实时方法非常相似,但用户可以使用 HTML Cralwer 作为代理,而不是向我们的端点发布数据。要检索数据,用户必须设置一个代理端点,并向所需的 URL 发送 GET 请求。必须使用标头添加其他参数。
我们推荐的数据提取方法是 推拉式.
推拉式
这是最简单、最可靠、最值得推荐的数据传输方法。在推拉式方案中,您向我们发送查询,我们向您返回工作 本我工作完成后,您可以使用 本我 中检索内容 /结果 端点。你可以自己检查作业完成状态,也可以设置一个能接受 POST 查询的简单监听器。
这样,一旦作业准备就绪,我们就会向您发送回调消息。在本例中,结果将自动 上传到您的 S3 存储桶 名为 您的邮筒名称.
单一查询
以下端点将处理对一个关键字或 URL 的单次查询。API 将返回一条确认信息,其中包含任务信息,包括任务 本我.您可以使用它来检查任务完成状态 本我或者,您也可以要求我们在扫描任务完成后 ping 您的回调端点,方法是添加 回调URL 在查询中。
邮寄 https://data.oxylabs.io/v1/queries
您需要在 JSON 主体中将查询参数作为数据发布。
curl --user user:pass1 'https://data.oxylabs.io/v1/queries' -H "Content-Type: application/json"
-d '{"source":"bing_search", "domain":"com", "query":"adidas", "callback_url":"https://your.callback.url","storage_type":"s3","storage_url":"your_bucket_name"}'
API 将以 JSON 格式响应查询信息,并将其打印在响应体中,与此类似:
{
"callback_url":"https://your.callback.url"、
"client_id":5,
"context":[
{
"key":"safe_search"、
"value": null
}
],
"created_at":"2019-10-01 00:00:01",
"域":"com"、
"geo_location": null、
"id":"12345678900987654321",
"限制":10,
"locale": null、
"pages":1,
"render": null、
"query":"adidas"、
"来源":"bing_search"、
"start_page":1,
"状态":"pending"、
"storage_type":"s3",
"storage_url":"YOUR_BUCKET_NAME/12345678900987654321.json",
"subdomain":"www"、
"updated_at":"2019-10-01 00:00:01",
"user_agent_type":"desktop"、
"_链接":[
{
"rel":"self"、
"href":"http://data.oxylabs.io/v1/queries/12345678900987654321",
"method":"GET"
},
{
"rel":"results"、
"href":"http://data.oxylabs.io/v1/queries/12345678900987654321/results",
"method":"GET"
}
]
}
检查工作状态
如果您的查询有 回调URL一旦完成刮擦任务,我们将向您发送一条包含内容链接的信息。但是,如果没有 回调URL 在查询中,您需要自己检查任务状态。为此,您需要使用 href 根据 rel:自我 在您向我们的 API 提交查询后收到的响应信息中。它应该与下面的内容相似: http://data.oxylabs.io/v1/queries/12345678900987654321.
GET https://data.oxylabs.io/v1/queries/{id}
查询该链接将返回工作信息,包括其 地位.有 3 种可能 地位 价值观
未决 |
任务仍在队列中,尚未完成。 |
完成的 |
任务完成后,您可以通过在 href 根据 rel:成果 : http://data.oxylabs.io/v1/queries/12345678900987654321/results |
有问题 |
任务出了问题,我们无法完成,很可能是目标网站方面的服务器出错。 |
curl --user user:pass1 'http://data.oxylabs.io/v1/queries/12345678900987654321'
API 将在响应正文中打印 JSON 格式的查询信息。请注意,任务 地位 改为 完成的.现在您可以通过查询 http://data.oxylabs.io/v1/queries/12345678900987654321/results.
您还可以看到任务已被 updated_at 2019-10-01 00:00:15 - 查询需要 14 秒才能完成。
{
"client_id":5,
"context":[
{
"key":"safe_search"、
"value": null
}
],
"created_at":"2019-10-01 00:00:01",
"域":"com"、
"geo_location": null、
"id":"12345678900987654321",
"限制":10,
"locale": null、
"pages":1,
"render": null、
"query":"adidas"、
"来源":"bing_search"、
"start_page":1,
"状态":"done"、
"子域":"www"、
"updated_at":"2019-10-01 00:00:15",
"user_agent_type":"desktop"、
"_链接":[
{
"rel":"self"、
"href":"http://data.oxylabs.io/v1/queries/12345678900987654321",
"method":"GET"
},
{
"rel":"results"、
"href":"http://data.oxylabs.io/v1/queries/12345678900987654321/results",
"method":"GET"
}
]
}
检索工作内容
通过检查作业状态或接收我们的回调,一旦知道作业已准备就绪,您就可以使用以下 URL 获取作业 href 根据 rel:成果 在我们的初始响应或回调信息中。看起来应该类似于下面这样: http://data.oxylabs.io/v1/queries/12345678900987654321/results
GET https://data.oxylabs.io/v1/queries/{id}/results
通过设置 "任务状态",可以自动检索结果,而无需定期检查任务状态。 回调 服务。用户需要指定运行回调服务的服务器的 IP 或域。当我们的系统完成一项任务时,它将向所提供的 IP 或域发送一条信息,回调服务将下载结果,如 回调实现示例.
curl --user user:pass1 'http://data.oxylabs.io/v1/queries/12345678900987654321/results'
API 将返回工作内容:
{
"结果":[
{
"content":"<!
内容
",
"created_at":"2019-10-01 00:00:01",
"更新时间":"2019-10-01 00:00:15",
"页":1,
"url":"https://www.bing.com/search?q=adidas"、
"job_id":"12345678900987654321",
"status_code":200
}
]
}
回调
回调是一个 职位 我们会向您的机器发送请求,告知数据提取任务已完成,并提供下载刮擦内容的 URL。这意味着您不再需要 检查工作状态 手动操作。一旦数据到齐,我们会通知您,您现在需要做的就是 取回.
# 请查看 Python 和 PHP 代码示例。
回调输出示例
{
"created_at":"2019-10-01 00:00:01",
"updated_at":"2019-10-01 00:00:15",
"locale":null、
"client_id":163、
"user_agent_type": "desktop"、
"source": "bing_search"、
"页面":1、
"子域": "www"、
"status": "done"、
"start_page":1、
"render":null、
"priority":0、
"ttl":0、
"origin": "api"、
"persist":true、
"id":"12345678900987654321",
"callback_url": "http://your.callback.url/"、
"query": "adidas"、
"domain": "com"、
"limit":10、
"geo_location":null、
{...}
"_links":[
{
"href":"https://data.oxylabs.io/v1/queries/12345678900987654321",
"method": "GET"、
"rel": "self"
},
{
"href":"https://data.oxylabs.io/v1/queries/12345678900987654321/results",
"method": "GET"、
"rel": "results" }
}
],
}
批量查询
实时爬虫还支持执行多个关键字,每批最多可执行 1,000 个关键字。以下端点将向提取队列提交多个关键词。
邮寄 https://data.oxylabs.io/v1/queries/batch
您需要在 JSON 主体中将查询参数作为数据发布。
系统会将每个关键词作为一个单独请求处理。如果您提供了回调 URL,您将为每个关键字收到单独的调用。否则,我们的初始响应将包含工作 本我的所有关键字。例如,如果您发送了 50 个关键字,我们将返回 50 个唯一的职位。 本我s.
重要! 询问 是唯一一个可以有多个值的参数。所有其他参数对于该批次查询都是一样的。
curl --user user:pass1 'https://data.oxylabs.io/v1/queries/batch' -H 'Content-Type: application/json' -d '@keywords.json -d'@keywords.json'(关键词
keywords.json 内容:
{
"query":[
"阿迪达斯"、
"耐克"、
"蕾博克"
],
"来源":"bing_search"、
"域":"com"、
"callback_url":"https://your.callback.url"
}
API 将以 JSON 格式响应查询信息,并将其打印在响应体中,与此类似:
{
"查询":[
{
"callback_url":"https://your.callback.url"、
{...}
"created_at":"2019-10-01 00:00:01",
"域":"com"、
"id":"12345678900987654321",
{...}
"查询":"阿迪达斯"、
"来源":"bing_search"、
{...}
"rel":"results"、
"href":"http://data.oxylabs.io/v1/queries/12345678900987654321/results",
"method":"GET"
}
]
},
{
"callback_url":"https://your.callback.url"、
{...}
"created_at":"2019-10-01 00:00:01",
"域":"com"、
"id":"12345678901234567890",
{...}
"查询":"NIKE"、
"来源":"bing_search"、
{...}
"rel":"results"、
"href":"http://data.oxylabs.io/v1/queries/12345678901234567890/results",
"method":"GET"
}
]
},
{
"callback_url":"https://your.callback.url"、
{...}
"created_at":"2019-10-01 00:00:01",
"域":"com"、
"id":"01234567899876543210",
{...}
"查询":"reebok"、
"来源":"bing_search"、
{...}
"rel":"results"、
"href":"http://data.oxylabs.io/v1/queries/01234567899876543210/results",
"method":"GET"
}
]
}
]
}
获取通知程序 IP 地址列表
您可能希望将向您发送回调信息的 IP 列入白名单,或为其他目的获取这些 IP 的列表。这可以通过 获取在这个端点上: https://data.oxylabs.io/v1/info/callbacker_ips.
curl --user user:pass1 'https://data.oxylabs.io/v1/info/callbacker_ips'
API 将返回向您的系统发出回调请求的 IP 列表:
{
"ips":[
"x.x.x.x"、
"y.y.y.y"
]
}
上传到存储器
默认情况下,RTC 任务结果存储在我们的数据库中。这意味着您需要查询我们的结果端点并自行检索内容。自定义存储功能允许您将结果存储在自己的云存储中。该功能的优势在于,您无需为了获取结果而发出额外请求,所有内容都会直接存储到您的存储桶中。
我们支持亚马逊 S3 和谷歌云存储。如果您想使用其他类型的存储,请联系您的客户经理,讨论功能交付时间表。
亚马逊 S3
要将作业结果上传到 Amazon S3 存储桶,请为我们的服务设置访问权限。为此,请访问 https://s3.console.aws.amazon.com/ > S3 > 存储 > 桶名称(如果没有,请新建) > 权限 > 桶策略

您可以在此找到水桶政策 JSON 或右侧的代码示例区。不要忘记在 您的邮筒名称.通过该策略,我们可以向您的邮筒写入内容,允许您访问上传的文件,并了解邮筒的位置。
谷歌云存储
要将作业结果上传到您的 Google Cloud Storage 存储桶,请为我们的服务设置特殊权限。为此,请使用 存储.对象.创建 权限并将其分配给 Oxylabs 服务帐户电子邮件 [email protected].


使用方法
要使用此功能,请在请求中指定两个附加参数。了解更多信息 这里.
上传路径如下 YOUR_BUCKET_NAME/job_ID.json.您可以在提交请求后从我们收到的回复正文中找到职位 ID。在 本例 工作编号为 12345678900987654321.
{
"版本":"2012-10-17",
"Id":"Policy1577442634787",
"声明":[
{
"Sid":"Stmt1577442633719"、
"效果":"允许"、
"校长":{
"AWS":"arn:aws:iam::324311890426:user/oxylabs.s3.uploader"
},
"Action":"s3:GetBucketLocation"、
"资源":"arn:aws:s3:::YOUR_BUCKET_NAME" }.
},
{
"Sid":"Stmt1577442633719"、
"效果":"允许"、
"校长":{
"AWS":"arn:aws:iam::324311890426:user/oxylabs.s3.uploader"
},
"Action":[
"s3:PutObject"、
"s3:PutObjectAcl"。
],
"资源":"arn:aws:s3:::YOUR_BUCKET_NAME/*"。
}
]
}
实时
数据提交方式与推拉方式相同,但在实时情况下,我们将在连接打开时返回内容。您向我们发送查询,连接保持打开,我们检索内容并发送给您。处理的端点如下:
邮寄 https://realtime.oxylabs.io/v1/queries
开放连接的超时限制为 150 秒,因此在极少数负载较重的情况下,我们可能无法确保将数据发送给您。
您需要在 JSON 主体中将查询参数作为数据发布。详情请参阅示例。
curl --user user:pass1 'https://realtime.oxylabs.io/v1/queries' -H "Content-Type: application/json"
-d '{"source":"bing_search", "domain":"com", "query":"adidas"}'
打开连接时将返回的响应体示例:
{
"结果":[
{
"content":"
内容
"
"created_at":"2019-10-01 00:00:01",
"更新时间":"2019-10-01 00:00:15",
"id": null、
"page":1,
"url":"https://www.bing.com/search?q=adidas"、
"job_id":"12345678900987654321",
"status_code":200
}
]
}
超级用户接口
如果您曾经使用过普通代理进行数据搜刮,那么集成 SuperAPI 传输方法将轻而易举。只需将我们的入口节点用作代理,使用实时爬虫凭据进行授权,并忽略证书即可。在 cURL 这是 -k 或 --不安全.您的数据将通过开放连接发送给您。
GET realtime.oxylabs.io:60000
超级用户接口只支持少量参数,因为它 仅适用于 直接 数据源 其中提供了完整的 URL。这些参数应作为标头发送。这是可接受的参数列表:
X-OxySERPs-User-Agent-Type |
虽然无法指明特定的 User-Agent,但您可以让我们知道您使用的浏览器和平台。支持的用户代理列表如下所示 这里. |
X-OxySERPs-地理位置 |
应用程序接口使用 Canonical Geo Location 格式来确定请求位置。具体如下 城市、地区、国家例如 美国阿肯色州哈里斯堡).有关如何创建 "典型地理位置名称 "的更多信息,请查阅 这里. |
如果您在设置超级用户接口时需要帮助,请致电 [email protected].
curl -k -x realtime.oxylabs.io:60000 -U user:pass1 -H "X-OxySERPs-User-Agent-Type: desktop_chrome" -H "X-OxySERPs-Geo-Location:15550" "https://bing.com/search/?text=nike"
内容类型
实时爬虫返回 原始HTML.
数据来源
使用实时爬虫从 Bing 检索数据有两种方法。您可以通过以下方式向我们提供完整的 URL 直接或者您可以通过专门构建的数据源--"...... "来指定参数。 搜索.
如果您不确定选择哪种方式,请给我们留言 [email protected] 或联系您的客户经理。
直接
![]()
乒 源的目的是检索各种必应页面的直接 URL 内容。这意味着,您可以向我们提供所需必应页面的直接 URL,而无需发送多个参数。我们不会删除任何参数,也不会以任何其他方式更改您的 URL。
查询参数
| 参数 | 说明 | 默认值 |
| 消息来源 | 数据来源 | 乒 |
| 网址 | 直接指向必应页面的 URL(链接 | – |
| 用户代理类型 | 设备类型和浏览器。完整列表如下 这里。 | 桌面 |
| 地理位置 | 应用程序接口使用 Canonical Geo Location 格式来确定请求位置。具体如下城市、地区、国家,例如美国阿肯色州哈里斯堡)。有关如何创建 Canonical 地理位置名称的更多信息,请查阅 这里。 | – |
| 回调URL | 回调端点的 URL | – |
| 存储类型 | 存储服务提供商。我们支持 Amazon S3 和 Google Cloud Storage。这些存储服务提供商的 storage_type 参数值分别为 s3 和 gcs。完整的实现可以在 上传到存储器 页。此功能只能通过推拉(回调)方法使用。 | – |
| 存储URL | 您的存储桶名称。仅适用于推挽(回调)方法。 | – |
| - 所需参数 | ||
在本例中,应用程序接口将检索必应搜索关键词 耐克 推拉法
curl --user user:pass1 'https://data.oxylabs.io/v1/queries' -H "Content-Type: application/json"
-d '{"source":"bing", "url":"https://bing.com/search/?text=nike&"}'
以下是实时模式下的相同示例:
curl --user user:pass1 'https://realtime.oxylabs.io/v1/queries' -H "Content-Type: application/json"
-d '{"source":"bing", "url":"https://bing.com/search/?text=nike&"}'
并通过超级用户接口(SuperAPI):
curl -k -x realtime.oxylabs.io:60000 -U user:pass1 "https://bing.com/search/?text=nike&"
搜索
![]()
bing_search 该源代码旨在检索必应搜索结果(SERP)。
查询参数
| 参数 | 说明 | 默认值 |
| 消息来源 | 数据来源 | bing_search |
| 领域 | 域名本地化。可用域名:com、ru、ua、by、kz、tr | 网 |
| 询问 | UTF 编码的关键字 | – |
| start_page | 起始页码 | 1 |
| 页面 | 要检索的页数 | 1 |
| 限额 | 每页要检索的结果数量 | 10 |
| 地点 | 语言。您可以使用 2 个字母的 ISO 国家代码(如 en、by、fr 等)或语言标记(如 en-US、de-DE、ar-EG 等)。 | – |
| 地理位置 | 应用程序接口使用 Canonical Geo Location 格式来确定请求位置。具体如下城市、地区、国家,例如美国阿肯色州哈里斯堡)。有关如何创建 Canonical 地理位置名称的更多信息,请查阅 这里。 | – |
| 用户代理类型 | 设备类型和浏览器。完整列表如下 这里。 | 桌面 |
| 回调URL | 回调端点的 URL | – |
| 存储类型 | 存储服务提供商。我们支持 Amazon S3 和 Google Cloud Storage。这些存储服务提供商的 storage_type 参数值分别为 s3 和 gcs。完整的实现可以在 上传到存储器 页。此功能只能通过推拉(回调)方法使用。 | – |
| 存储URL | 您的存储桶名称。仅适用于推挽(回调)方法。 | – |
| - 所需参数 | ||
API 向 bing.com 检索关键字从第 11 到第 20 的搜索结果页面 阿迪达斯.API 将向 your.callback.url 包含 URL,以便在数据检索任务成功完成后下载原始 HTML 输出。这就是推拉式:
curl --user user:pass1 'https://data.oxylabs.io/v1/queries' -H "Content-Type: application/json"
-d '{"source":"bing_search", "domain":"com", "query":"adidas", "start_page":11, "pages":10, "callback_url":"https://your.callback.url"}'
以下是实时模式下的相同示例:
curl --user user:pass1 'https://realtime.oxylabs.io/v1/queries' -H "Content-Type: application/json"
-d '{"source":"bing_search", "domain":"com", "query":"adidas", "start_page":11, "pages":10, "callback_url":"https://your.callback.url"}'
参数值
用户代理
下载完整列表 用户代理类型 JSON 中的值 这里.
[
{
"user_agent_type":"桌面"、
"描述":"随机桌面浏览器用户代理"
},
{
"user_agent_type":"desktop_firefox"、
"描述":"最新版桌面火狐浏览器的随机用户代理"。
},
{
"user_agent_type":"desktop_chrome"、
"description":"最新版桌面 Chrome 浏览器的随机用户代理"。
},
{
"user_agent_type":"desktop_opera"、
"description":"最新版本桌面 Opera 的随机用户代理"。
},
{
"user_agent_type":"desktop_edge"、
"description":"桌面边缘最新版本之一的随机用户代理"。
},
{
"user_agent_type":"desktop_safari"、
"description":"桌面 Safari 最新版本之一的随机用户代理"。
},
{
"user_agent_type":"mobile"、
"description":"随机移动浏览器用户代理"
},
{
"user_agent_type":"mobile_android"、
"description"(描述):"最新版本安卓浏览器的随机用户代理"。
},
{
"user_agent_type":"mobile_ios"、
"描述":"最新版本 iPhone 浏览器的随机用户代理"。
},
{
"user_agent_type":"平板电脑"、
"描述":"随机平板电脑浏览器用户代理"
},
{
"user_agent_type":"tablet_android"、
"描述":"最新版本安卓平板电脑的随机用户代理"。
},
{
"user_agent_type":"tablet_ios"、
"description":"最新版本 iPad 平板电脑的随机用户代理"。
}
]
账户状态
使用统计
您可以通过查询以下端点找到您的使用统计数据:
GET https://data.oxylabs.io/v1/stats
默认情况下,API 将返回所有时间的使用统计数据。添加 group_by=month 将返回月度统计数据,而 group_by=day 将返回每日数字。
该查询将返回所有时间的统计数据。您可以通过添加 group_by=day 或 group_by=month
curl --user user:pass1 'https://data.oxylabs.io/v1/stats'
输出示例
{
"数据":{
"sources":[
{
"realtime_results_count":"90",
"results_count":"10",
"标题":"bing
},
{
"realtime_results_count":"19",
"results_count":"87",
"标题":"bing_search
}
]
},
"元":{
"group_by": null
}
}
限制
以下终端将提供您的每月承诺信息以及已使用的金额:
GET https://data.oxylabs.io/v1/stats/limits
curl --user user:pass1 'https://data.oxylabs.io/v1/stats/limits'
输出示例
{
"monthly_requests_commitment":4500000,
"used_requests":985000
}
响应代码
| 代码 | 现状 | 说明 |
|---|---|---|
204 |
无内容 | 您正在尝试检索一项尚未完成的任务。 |
400 |
多种错误信息 | 请求结构错误,可能是参数拼写错误或值无效。响应体将显示更具体的错误信息。 |
401 |
未提供授权标头"/"授权标头无效"/"未找到客户端 | 缺少授权标头或登录凭证不正确。 |
403 |
禁止 | 您的帐户无法访问此资源。 |
404 |
未找到 | 您要查找的职位编号已不再可用。 |
429 |
请求太多 | 超出费率限制。请联系您的客户经理以提高限额。 |
500 |
未知错误 | 无法提供服务。 |
524 |
超时 | 无法提供服务。 |
612 |
未定义的内部错误 | 出了点问题,我们未能完成您提交的任务。您可以免费再试一次,因为我们不会向您收取任何费用。 有问题 工作如果还不行,请联系我们。 |
613 |
重试次数过多后出现故障 | 我们曾尝试清除您提交的作业,但在达到重试限制后放弃了。您可以免费再试一次,因为我们不会向您收取任何费用。 有问题 工作如果还不行,请联系我们。 |
云存储上传响应代码:
10001 |
意外异常 | 发生了严重的错误。我们可能已经知道,并正在修复。无论如何,请告诉我们。 |
13000 |
上传成功 | 一切顺利! |
13001 |
上传失败 | 我们无法上传您的工作结果。 |
13102 |
没有这样的道路 | 我们找不到这样名字的水桶。请仔细检查。 |
13103 |
拒绝访问 | Bucket 没有所需的权限。要了解如何授予我们必要的权限,请参阅 这里. |
参考资料
免责声明 这部分内容主要来自商家。如果商家不希望在我的网站上显示,请 联系我们 删除您的内容。
最后更新于 5 月 16, 2022