JavaScript 渲染

了解你可以在请求中包含的请求头,以获取完全渲染的数据,你可以将其存储为 HTML 文件或 PNG 截图。

如果您想抓取的页面需要加载 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:

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

获取完整渲染页面的截图

若要获取 PNG 格式的截图而不是页面 HTML,则必须提供 "X-Oxylabs-Render: png" 标头。

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

作为 PNG 格式截图的 Youtube 页面示例

强制渲染特定页面

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

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

这种方式提供尽可能好的抓取体验,确保这些高难度页面的数据准确性和可靠性。

如果您想禁用渲染,请发送不带值的 render 标头

这有帮助吗?