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

JavaScript 渲染

如果您希望抓取的页面需要加载 JavaScript 才能将所有必要数据动态加载到 DOM 中,与其自己设置并使用无头浏览器,不如在请求中包含 "X-Oxylabs-Render: html" 头部。所有包含此头部的请求将被完全渲染,所有数据将以 HTML 文件或 PNG 截图的形式保存(取决于传入的参数)。

JavaScript 渲染抓取页面需要更多时间。使用 JavaScript 渲染时,请将客户端超时时间设置为 180 秒。

此参数有两个可用值:

  • html (渲染页面的 HTML)

  • png (可以保存为 PNG 的原始字节)

代码示例

curl -k -v -x https://unblock.oxylabs.io:60000 \
-U 'USERNAME:PASSWORD' \
'https://ip.oxylabs.io/location' \
-H 'X-Oxylabs-Render: html'

抓取网站 HTML

在此示例中,我们将对 YouTube 主页进行渲染并抓取页面内容。如果在不使用 JavaScript 渲染的情况下使用 网页解锁器,通常 YouTube 主页看起来会像这样:

未启用 JavaScript 渲染的 YouTube 页面示例

添加 "X-Oxylabs-Render: html" 头部,如下面示例所示,将启用 JavaScript 渲染并返回渲染后的页面 HTML:

curl -k -v -x https://unblock.oxylabs.io:60000 \
-U 'USERNAME:PASSWORD' \
'https://youtube.com' \
-H 'X-Oxylabs-Render: html'

在浏览器中打开的 HTML 文件应如下所示:

获取完全渲染页面的截图

要获取 PNG 格式的截图而不是页面 HTML,需要提供 "X-Oxylabs-Render: png" 头部。

curl -k -v -x https://unblock.oxylabs.io:60000 \
-U 'USERNAME:PASSWORD' \
'https://youtube.com' \
-H 'X-Oxylabs-Render: png' > rendered_page.png

响应将包含可保存为 PNG 格式并按下面示例打开的图像原始字节:

以 PNG 格式的截图形式的 YouTube 页面示例

在特定页面上强制渲染

为了成功抓取,某些特定域的页面类型由于其动态内容需要渲染。即使用户未显式设置,我们的系统也会自动对这些页面强制渲染。

我们希望用户在抓取以下页面时充分意识到这一点:

这种方法可为这些具有挑战性的页面提供尽可能最佳的抓取体验,确保数据的准确性和可靠性。

如果您希望禁用渲染,请发送不带值的 render 头部

X-oxylabs-render: 

最后更新于

这有帮助吗?