JavaScript 渲染
了解可在请求中包含的头,以获取完全渲染的数据,这些数据可存储为 HTML 文件或 PNG 截图。
如果您要抓取的页面需要加载 JavaScript 才能将所有必需数据动态加载到 DOM 中,与其自己设置并使用无头浏览器,您可以在请求中包含 "X-Oxylabs-Render: html" 头部。所有包含此头部的请求将被完全渲染,所有数据将存储在 HTML 文件或 PNG 截图中(取决于传递的参数)。
为确保最低流量消耗,我们的系统在页面渲染期间不会加载不必要的资源。
此参数有两个可用值:
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'import requests
# 在此处使用您的 Web Unblocker 凭据。
USERNAME, PASSWORD = 'YOUR_USERNAME', 'YOUR_PASSWORD'
# 定义代理字典。
proxies = {
'http': f'http://{USERNAME}:{PASSWORD}@unblock.oxylabs.io:60000',
'https': f'https://{USERNAME}:{PASSWORD}@unblock.oxylabs.io:60000',
}
headers = {
'X-Oxylabs-Render': 'html'
}
response = requests.get(
'https://ip.oxylabs.io/location',
verify=False, # 需要忽略证书
proxies=proxies,
headers=headers,
)
# 将结果页面打印到标准输出
print(response.text)
# 将返回的 HTML 保存到 result.html 文件
with open('result.html', 'w') as f:
f.write(response.text)抓取网站 HTML
在此示例中,我们将渲染 YouTube 主页并抓取页面内容。通常如果在不使用 Javascript 渲染的情况下使用 Web Unblocker,YouTube 主页通常如下所示:

添加 "X-Oxylabs-Render: html" 头部,如下例所示,将启用 Javascript 渲染并返回渲染页面的 HTML:
在浏览器中打开的 HTML 文件应如下所示:

获取完全渲染页面的截图
要以 PNG 格式获取截图而不是页面 HTML,需要提供 "X-Oxylabs-Render: png" 头部。
响应将包含图像的原始字节,可保存为 PNG 格式并按下面示例打开:

在特定页面强制渲染
为成功抓取,某些特定域的页面类型由于其动态内容需要渲染。我们的系统会自动对这些页面强制渲染,即使用户未明确设置。
请注意,渲染任务比非渲染任务消耗更多流量。
我们希望用户在抓取以下页面时对此有充分认识:
这种方法为这些具有挑战性的页面提供了最佳抓取体验,确保数据的准确性和可靠性。
如果您希望禁用渲染,请发送不带值的渲染头
最后更新于
这有帮助吗?

