Documentation has been updated: see help center and changelog in one place.

浏览器指令(测试版)

使用 无头浏览器 时,您可以定义在渲染 JavaScript 时执行的自定义浏览器指令。

如何使用?

要使用浏览器指令,请在创建任务时提供一组 browser_instructions

假设您想在网站上搜索术语 pizza boxes

示例任务参数如下所示:

curl -k -x https://unblock.oxylabs.io:60000 \
-U 'USERNAME:PASSWORD' \
'https://www.ebay.com' \
-H 'x-oxylabs-render: html' \
-H "x-oxylabs-browser-instructions: [{\"type\":\"input\",\"value\":\"pizza boxes\",\"selector\":{\"type\":\"xpath\",\"value\":\"\/\/input[@class='gh-tb ui-autocomplete-input']\"}},{\"type\":\"click\",\"selector\":{\"type\":\"xpath\",\"value\":\"\/\/input[@type='submit']\"}},{\"type\":\"wait\",\"wait_time_s\":5}]"

第 1 步。 您必须提供 x-oxylabs-render: html 参数一起使用时该参数才有用。

第 2 步。 浏览器指令应以 x-oxylabs-browser_instructions 字段描述。

作为头部值提供的浏览器指令必须进行 JSON 转义,并且不能包含额外空格。

上面的示例浏览器指令指定目标是将搜索词 pizza boxes 输入到搜索字段,点击 search 按钮并等待 5 秒以加载内容。

抓取结果应如下所示:

<!doctype html><html>
执行指令后的内容      
</html>

抓取到的 HTML 应该如下所示:

正在获取浏览器资源

我们提供了一个用于获取浏览器资源的独立浏览器指令。

该函数在此定义:

使用 fetch_resource 将导致任务返回与所提供格式匹配的第一个 Fetch/XHR 资源的内容,而不是目标 HTML。

假设我们想针对在浏览器中以自然方式访问产品页面时获取的 GraphQL 资源。我们将提供如下的任务信息:

curl -k -x https://unblock.oxylabs.io:60000 \
-U 'USERNAME:PASSWORD' \
'https://www.example.com/product-page/123' \
-H 'x-oxylabs-render: html' \
-H "x-oxylabs-browser-instructions: [{\"type\": \"fetch_resource\",\"filter\": \"\/graphql\/product-info\/123\"}]"

这些指令将产生如下结果:

{"product_id": 123, "description": "", "price": 456}

受支持的浏览器指令列表

指令列表

状态代码

请参阅我们在此列出的响应代码 此处.

关于指令验证的状态代码记录在 此处.

最后更新于

这有帮助吗?