Documentation has been updated: see help center and changelog in one place.
🆕Explore
LogoLogo
Oxylabs dashboardContact usProduct
中文
  • Documentation
  • Help center
  • Changelog
中文
  • 总览
  • 代理
    • 集成教程
      • 动态住宅代理教程
        • AdsPower
        • Android
        • BitBrowser(比特浏览器)
        • ClonBrowser
        • Ghost Browser
        • Helium Scraper
        • Hubstudio
        • Incogniton
        • Kameleo
        • MuLogin
        • Multilogin
        • Octoparse
        • Oxy® Proxy 的 Chrome 代理扩展程序
        • ParseHub
        • Playwright
        • Puppeteer
        • Selenium
        • SwitchyOmega
        • Shadowrocket
        • VMLogin
        • VMMask
        • WebHarvy
      • 动态移动代理教程
        • AdsPower
        • Android
        • BitBrowser(比特浏览器)
        • ClonBrowser
        • Ghost Browser
        • Helium Scraper
        • Hubstudio
        • Incogniton
        • Kameleo
        • MuLogin
        • Multilogin
        • Octoparse
        • Oxy® Proxy 的 Chrome 代理扩展程序
        • ParseHub
        • Playwright
        • Puppeteer
        • Selenium
        • SwitchyOmega
        • Shadowrocket
        • VMLogin
        • VMMask
        • WebHarvy
      • 静态数据中心代理教程
        • BitBrowser(比特浏览器)
        • FoxyProxy
        • Hubstudio
        • MuLogin
        • Oxy® 代理管理器
        • Proxifier
        • SwitchyOmega
        • VMMask
      • 动态数据中心代理集成教程
        • AdsPower
        • Hubstudio
        • MuLogin
        • VMMask
    • 静态数据中心代理
      • 企业
        • 入门指南
        • 代理列表
        • 提出请求
        • 企业-协议
        • 将 IP 列入白名单
          • 仪表板
          • RESTful
            • 获取白名单 IP 列表
            • 添加白名单 IP
            • 移除白名单的 IP
            • 正在保存更改(5 分钟冷却时间)
        • 数据中心代理 API
        • 代理轮换工具 - 可选
          • 使用代理轮换工具的会话控制
        • 响应代码
      • 自助服务
        • 入门指南
        • 发起请求
        • 代理列表
        • 代理轮换
        • 位置设置
        • 协议
        • 响应代码
        • 受限目标
    • ISP代理
      • 入门指南
      • 发起请求
      • 代理列表
      • 代理轮换
      • 位置设置
      • 协议
      • 响应代码
      • 受限目标
    • 住宅代理
      • 入门指南
      • 反向连接入口节点
        • 中国入口节点
      • 基本查询
      • 协议
      • 选择国家/地区
      • 选择州
      • 选择城市
      • 选择大洲
      • 会话控制
      • 具体国家/地区的入口节点
      • 端点生成器
      • 其他信息
      • 受限目标网站
      • 公共 API
    • 移动代理
      • 入门指南
      • 反向连接入口节点
        • 中国入口节点
      • 基本查询
      • 协议
      • 选择国家/地区
      • 选择大洲
      • 会话控制
      • 具体国家/地区的入口节点
      • 端点生成器
      • 其他信息
      • 受限目标网站
      • 公共 API
    • 数据中心代理
      • 代理列表
      • IP控制
      • 选择国家
      • 协议
      • 白名单
      • 响应代码
      • 受限目标
      • 公平使用政策
    • (传统!)动态数据中心代理
      • 入门指南
      • 提出请求
      • 选择国家/地区
      • 会话控制
      • 响应代码
      • 受限目标网站
  • 高级代理解决方案
    • 网页解锁器
      • 开始使用
      • 提出请求
        • 会话
        • 地理位置
        • 标头
        • Cookie
        • 自定义状态代码
        • POST 请求
        • JavaScript 渲染
      • 样例响应
      • 用量统计数据
  • 爬虫API
    • 入门
      • API 参考
        • 集成方法
          • Realtime
          • 推拉
          • 代理端口
        • 身份验证
        • 全局参数值
        • 响应代码
        • 用量统计
      • Postman
    • 电商爬虫 API
      • Amazon
        • 参数值
        • 结构化数据
      • Google Shopping
        • 参数值1
        • 结构化数据
      • AliExpress
      • 其他域名
        • 参数值
        • 下载图片
    • SERP 爬虫 API
      • Google
        • 参数值
        • 结构化数据
      • Bing
        • 参数值
      • 其他搜索引擎
    • 网络爬虫 API
      • 其他域名
        • 参数值
        • 下载图片
    • 任务管家 (Scheduler)
    • 自定义解析器 (Custom Parser)
      • 入门
      • 解析指令的示例
      • 函数列表
        • 函数示例
    • 无头浏览器 (Headless Browser)
      • JavaScript 渲染
      • 浏览器指令(测试版)
        • 指令列表
  • 有用链接
    • Oxylabs 仪表板
    • Discord社群
    • GitHub
  • 常见问题
  • 支持
    • 需要帮助?
Powered by GitBook
On this page
  • 支持的浏览器指令列表
  • 状态码
  • 错误和警告

Was this helpful?

  1. 爬虫API
  2. 无头浏览器 (Headless Browser)

浏览器指令(测试版)

PreviousJavaScript 渲染Next指令列表

Last updated 1 year ago

Was this helpful?

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

如何使用?

要使用浏览器指令,请在创建作业时提供一组browser_instructions。

比如说,您想在网站上搜索pizza boxes这个词。

示例作业参数如下:

{
    "source": "universal",
    "url": "https://www.ebay.com/",
    "render": "html",
    "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
        }
    ]
}

第一步:您必须提供"render": "html"参数。

第二步:浏览器指令应该在"browser_instructions" 字段。

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

抓取的结果应如下所示:

{
  "results": [
    {
      "content": "<!doctype html><html>
        Content after executing the instructions      
      </html>",
      "created_at": "2023-10-11 11:35:23",
      "updated_at": "2023-10-11 11:36:08",
      "page": 1,
      "url": "https://www.ebay.com/",
      "job_id": "7117835067442906113",
      "status_code": 200
    }
  ]
}

抓取的HTML应该如下所示:

获取浏览器资源

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

比方说,我们想要定位在浏览器中自然访问产品页面时获取的GraphQL资源。我们将提供作业信息如下:

{
    "source": "universal",
    "url": "https://www.example.com/product-page/123",
    "render": "html",
    "browser_instructions": [
        {
            "type": "fetch_resource",
            "format": "/graphql/product-info/123"
        }
    ]
}

这些指令将导致如下结果:

{
  "results": [
    {
      "content": "{'product_id': 123, 'description': '', 'price': 123}",
      "created_at": "2023-10-11 11:35:23",
      "updated_at": "2023-10-11 11:36:08",
      "page": 1,
      "url": "https://example.com/v1/graphql/product-info/123/",
      "job_id": "7117835067442906114",
      "status_code": 200
    }
  ]
}

支持的浏览器指令列表

状态码

错误和警告

如果由于您的浏览操作而导致错误或警告,您将在结果中找到它,其键为browser_instructions_error或browser_instructions_warnings。例如,如果您发送了以下浏览器指令,而页面上没有找到预期的xpath,则结果将包含一个警告。

browser_instructions:

[
    {
        "type": "input", 
        "selector": {
            "type": "xpath",
            "value": "//input[@type='search']"
        },
        "value": "oxylabs"
    }
]

结果:

{
  "results": [
    {
      "content": "<!doctype html><html>
        Content after executing the instructions      
      </html>",
      "created_at": "2023-10-11 11:35:23",
      "updated_at": "2023-10-11 11:36:08",
      "browser_instructions_warnings": [
        {
          "action_type": "click",
          "msg": "Unable to find selector type `xpath` with value `//input[@type=search]` on the page."
        },
      ],
      "page": 1,
      "url": "https://example.com",
      "job_id": "7117835067442906113",
      "status_code": 200
    }
  ]
}
可能的错误和警告

在将浏览器指令转换为操作时发生意外错误。

在执行{action.type}浏览器指令时发生意外错误。

操作{action.type}超时。

在页面上找不到选择器类型{selector.type},值为{selector.value}。

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

指令列表
请参阅此处概述的响应代码。
该功能在此处定义
有关指令验证的状态码在此处记录。