想使用 Zenscrape API 进行网页刮削吗?所以你必须知道如何使用 Zenscrape API。本文将为你提供详细指导。开始吧
文件
专业提示: 注册 在此注册您的免费 apikey,以下所有代码片段都将包含您的私人 apikey。如果您已经注册、 登录 在查看文档之前。
邮差系列
为了给您提供最佳的开发体验,我们还创建了一个 Postman 集合,其中涵盖了我们的所有端点,包括大量示例。 在邮差中运行.
贷记费用和申请失败
计入配额的信用点数取决于请求类型配置和 API 端点返回的状态代码。因此,一个请求可能需要花费 1 到 25 个信用点。您可以使用我们的请求生成器在您的 仪表盘.它可生成最常用编程语言的代码片段。您可以找到我们的错误代码列表 这里.
保险费 |
给予 |
以学分计算的成本 |
---|---|---|
错误 | 错误 | 1 |
错误 | 真 | 5 |
真 | 错误 | 10 |
真 | 真 | 25 |
基本用法
通过该端点可以获取网站内容。基本使用时,除 apikey 外,只需一个参数。
GET POST /get
Zenscrape 添加 网址
参数将从目标网站获取 HTML 内容。此请求配置将使用标准代理,并将作为 1 个点数计入每月限额。
卷曲 "https://app.zenscrape.com/api/v1/get?url=http://httpbin.org/ip" \
-H "apikey: YOUR-APIKEY"
将生成以下回复:
<网页>
<率领>
</率领>
<机构>
<预先 风格="word-wrap: break-word; white-space: pre-wrap;">
{
"origin":"80.102.66.13"
}
</预先>
</机构>
</网页>
网络抓取 API
GET POST /get
参见演示答复:
<html>
<head></head>
<body>
<pre>
{
"起源": "223.233.44.142"
}
</pre>
</body>
</html>
该端点接受以下参数:
参数 | 类型 | 说明 |
---|---|---|
网址 | 所需 | 要搜索的目标网站 |
保险费 | 可选的, 布尔型,20 个学分计入配额 | 使用住宅代理,解锁难以搜索的网站 |
地点 | 可选的默认:全球 | 如果 premium=false 可能的位置是 "na"(北美)和 "eu"(欧洲)如果 premium=true 您可以从我们的 230 多个国家名单 |
keep_headers | 可选的, 布尔型 | 允许传递前向标头(如用户代理、cookie) |
设备类型 | 可选的, 布尔型 | 默认设置为桌面用户代理。设置为 "移动 "时,将设置为 iPhone 或 Android 用户代理 |
给予 | 可选的, 布尔型,计入配额的 5 个学分 | 使用无头浏览器获取依赖于 javascript 的内容 |
等待 | 可选的整数 | 最大值:15,只能与 render=true 浏览器刮除 HTML 标记前等待内容呈现的秒数 |
wait_for_css | 可选的整数 | 只能与 render=true 等待 css-selector 变为可见 |
届会 | 可选的字符串 | 如果您想重复使用一个 IP,可以使用随机字符串,例如 session=kdQ1VeQE |
滚动到底部 | 可选的, 布尔型 | 只能与 render=true 在返回页面内容之前,滚动到页面底部 |
Zenscrape 是一种 REST 应用程序接口,可通过任何编程语言接受 HTTP 请求。下面的示例通过代理连接到网址 https://httpbin.org/ip,并在浏览器中渲染内容,然后将标记返回给您。
https://app.zenscrape.com/api/v1/get?apikey=YOUR-APIKEY&url=https%3A%2F%2Fhttpbin.org%2Fip&premium=true&country=de&render=true
卷曲 "https://app.zenscrape.com/api/v1/get?apikey=YOUR-APIKEY&url=https%3A%2F%2Fhttpbin.org%2Fip&premium=true&country=de&render=true"
舶来品 requests headers = { "apikey": "您的密码"} params = ( ("url","https://httpbin.org/ip"), ("溢价","真"), ("国家","de"), ("渲染","真"), ); response = requests.get('https://app.zenscrape.com/api/v1/get', headers=headers, params=params); print(response.text)
变异 请求 = 要求(请求); 变异 选项 = { 网址: 'https://app.zenscrape.com/api/v1/get?apikey=YOUR-APIKEY&url=https://httpbin.org/ip&premium=true&country=de&render=true' }; 功能 回调(错误、响应、正文) { 如果 (!error && response.statusCode == 200) { 游戏机.log(body); }} request(options, callback);
$ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER、 真); curl_setopt($ch, CURLOPT_HEADER、 错误); $data = [ "url" => "https://httpbin.org/ip", "溢价" => "真", "国家" => "de", "渲染" => "真", ]; curl_setopt($ch, CURLOPT_URL、 "https://app.zenscrape.com/api/v1/get?" http_build_query($data)); curl_setopt($ch, CURLOPT_HTTPHEADER、 矩阵( "内容类型:应用程序/json", "apikey: YOUR-APIKEY", )); $response = curl_exec($ch); curl_close($ch); $json = json_decode($response); var_dump($json);
代理模式
GET POST
参见演示答复:
将生成以下回复:
<html>
<head></head>
<body>
<pre>
{
"起源": "223.233.44.142"
}
</pre>
</body> </html>
除了 REST API,Zenscrape 还提供 HTTP 代理接口。您可以集成任何已经依赖代理的应用程序。只需使用您的 API 密钥作为用户名,并使用您通常提供的任何参数作为密码即可。
HTTP 代理将返回 HTTP/1.1 407 需要代理验证
以防您的证书无效。
curl -k -x "http://YOUR-APIKEY:render=true&[email protected]:8282" https://quotes.toscrape.com/js
舶来品 请求 代理 = { "http": "http://YOUR-APIKEY:render=true&[email protected]:8282", "https": "http://YOUR-APIKEY:render=true&[email protected]:8282" } response = requests.get('https://quotes.toscrape.com/js',代理=代理,验证=假的); print(response.text)
$ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER、 真); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER、 错误); curl_setopt($ch, CURLOPT_URL、 "https://quotes.toscrape.com/js"); curl_setopt($ch, CURLOPT_PROXY、 "proxy-server.zenscrape.com:8282"); curl_setopt($ch, CURLOPT_PROXYUSERPWD、 "YOUR-APIKEY:render=true&wait_for_css=.author"); $response = curl_exec($ch); curl_close($ch); var_dump($response);
高级代理位置列表
以下地点列表可用于 地点
参数,如果 保险费
设置为 真
.
验证和 Apikey 信息
Zenscrape 使用 API 密钥允许访问 API。你可以在我们的开发者门户注册一个新的 API 密钥。您可以在我们的 开发者门户.......。 /status
路由返回剩余信用点数。
您可以通过以下方式进行授权:
GET POST /status
Zenscrape 会在类似以下内容的标头中查找 API 密钥(建议使用,适用于所有请求):
卷曲 "https://app.zenscrape.com/api/v1/status" \ -H "apikey: YOUR-APIKEY"
或
卷曲 "https://app.zenscrape.com/api/v1/status?apikey=YOUR-APIKEY"
或
卷曲 "https://app.zenscrape.com/api/v1/status -F "apikey=YOUR-APIKEY"
错误代码
Zenscrape API 使用以下错误代码:
HTTP 错误代码 | 意义 |
---|---|
403 | 禁止 - API 密钥错误,您没有足够的点数或没有足够的权限访问。 |
404 | 未找到 - 未找到任何结果。 |
429 | 请求过多 - 您已达到并发限制。请等待或升级 |
500 | 内部服务器错误 |
API 在此模板中返回错误:
{
"错误": [{
"url": "失踪"
}]
}
常见用例
使用高级代理
Zenscrape 提供大量优质代理,是搜索难以搜索的网站时的首选。要使用代理池,只需设置 premium=true
.此外,您还可以使用 location 参数指定一个地点。本例中我们选择了 "se"(瑞典)。您可以查看所有支持位置的列表 这里.
https://app.zenscrape.com/api/v1/get?apikey=YOUR-APIKEY&url=https%3A%2F%2Fhttpbin.org%2Fip&premium=true&country=se
卷曲 "https://app.zenscrape.com/api/v1/get?apikey=YOUR-APIKEY&url=https%3A%2F%2Fhttpbin.org%2Fip&premium=true&country=se"
舶来品 requests headers = { "apikey": "您的密码"} params = ( ("url","https://httpbin.org/ip"), ("溢价","真"), ("国家","se"), ); response = requests.get('https://app.zenscrape.com/api/v1/get', headers=headers, params=params); print(response.text)
变异 请求 = 要求(请求); 变异 选项 = { 网址: 'https://app.zenscrape.com/api/v1/get?apikey=YOUR-APIKEY&url=https://httpbin.org/ip&premium=true&country=se' }; 功能 回调(错误、响应、正文) { 如果 (!error && response.statusCode == 200) { 游戏机.log(body); }} request(options, callback);
$ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER、 真); curl_setopt($ch, CURLOPT_HEADER、 错误); $data = [ "url" => "https://httpbin.org/ip", "溢价" => "真", "国家" => "se", ]; curl_setopt($ch, CURLOPT_URL、 "https://app.zenscrape.com/api/v1/get?" http_build_query($data)); curl_setopt($ch, CURLOPT_HTTPHEADER、 矩阵( "内容类型:应用程序/json", "apikey: YOUR-APIKEY", )); $response = curl_exec($ch); curl_close($ch); $json = json_decode($response); var_dump($json);
设置自定义标题
没有必要为避免被阻止而设置自定义页眉,因为我们自己就可以管理页眉。如果您仍想设置自定义标头,可以通过设置 keep_headers=true
.在本例中,我们设置了自定义用户代理。
https://app.zenscrape.com/api/v1/get?apikey=YOUR-APIKEY&url=https%3A%2F%2Fhttpbin.org%2Fheaders&keep_headers=true&country=us
curl -H "User-Agent: 123" \ "https://app.zenscrape.com/api/v1/get?apikey=YOUR-APIKEY&url=https%3A%2F%2Fhttpbin.org%2Fheaders&keep_headers=true&country=us"
舶来品 requests headers = { "apikey": "您的密码", "用户代理": "123" } params = ( ("url","https://httpbin.org/headers"), ("keep_headers","真"), ("国家","我们"), ); response = requests.get('https://app.zenscrape.com/api/v1/get', headers=headers, params=params); print(response.text)
变异 请求 = 要求(请求); 变异 标题 = { 用户代理: '123' }; 变异 选项 = { 网址: 'https://app.zenscrape.com/api/v1/get?apikey=YOUR-APIKEY&url=https://httpbin.org/headers&keep_headers=true&country=us', 页眉:标题 }; 功能 回调(错误、响应、正文) { 如果 (!error && response.statusCode == 200) { 游戏机.log(body); }} request(options, callback);
$ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER、 真); curl_setopt($ch, CURLOPT_HEADER、 错误); $data = [ "url" => "https://httpbin.org/headers", "keep_headers" => "真", "国家" => "我们", ]; curl_setopt($ch, CURLOPT_URL、 "https://app.zenscrape.com/api/v1/get?" http_build_query($data)); curl_setopt($ch, CURLOPT_HTTPHEADER、 矩阵( "内容类型:应用程序/json", "apikey: YOUR-APIKEY", "User-Agent: 123" )); $response = curl_exec($ch); curl_close($ch); $json = json_decode($response); var_dump($json);
启用 JS 渲染
很多网站都使用 vue、react 等前端框架。为了提取需要 javascript 的组件,请设置 render=true
.
https://app.zenscrape.com/api/v1/get?apikey=YOUR-APIKEY&url=https%3A%2F%2Fhttpbin.org%2Fheaders&keep_headers=true&country=us
curl -H "User-Agent: 123" \ "https://app.zenscrape.com/api/v1/get?apikey=YOUR-APIKEY&url=https%3A%2F%2Fhttpbin.org%2Fheaders&keep_headers=true&country=us"
舶来品 requests headers = { "apikey": "您的密码", "用户代理": "123" } params = ( ("url","https://httpbin.org/headers"), ("keep_headers","真"), ("国家","我们"), ); response = requests.get('https://app.zenscrape.com/api/v1/get', headers=headers, params=params); print(response.text)
变异 请求 = 要求(请求); 变异 标题 = { 用户代理: '123' }; 变异 选项 = { 网址: 'https://app.zenscrape.com/api/v1/get?apikey=YOUR-APIKEY&url=https://httpbin.org/headers&keep_headers=true&country=us', 页眉:标题 }; 功能 回调(错误、响应、正文) { 如果 (!error && response.statusCode == 200) { 游戏机.log(body); }} request(options, callback);
$ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER、 真); curl_setopt($ch, CURLOPT_HEADER、 错误); $data = [ "url" => "https://httpbin.org/headers", "keep_headers" => "真", "国家" => "我们", ]; curl_setopt($ch, CURLOPT_URL、 "https://app.zenscrape.com/api/v1/get?" http_build_query($data)); curl_setopt($ch, CURLOPT_HTTPHEADER、 矩阵( "内容类型:应用程序/json", "apikey: YOUR-APIKEY", "User-Agent: 123" )); $response = curl_exec($ch); curl_close($ch); $json = json_decode($response); var_dump($json);
绕过 Cloudflare DDoS 保护
很多提供有趣内容的网站都实施了 cloudflare DDoS 保护。当 cloudflare DDoS 保护出现时,Zenscrape 会自动检测,并在保护层消失后返回页面内容。因此,cloudflare DDoS 保护是自动处理的,不需要您采取任何行动。
阻止特定资源
为了提高速度或抑制某些页面行为,阻止某些资源加载可能是有用的。在下面的示例中,我们决定阻止 样式表
, 图像
及其他 媒体
从加载。请记住 资源块
只能与 render=true
.
https://app.zenscrape.com/api/v1/get?apikey=YOUR-APIKEY&url=https%3A%2F%2Fquotes.toscrape.com%2Fjs&render=true&block_resources=stylesheet%2Cimage%2Cmedia
卷曲 "https://app.zenscrape.com/api/v1/get?apikey=YOUR-APIKEY&url=https%3A%2F%2Fquotes.toscrape.com%2Fjs&render=true&block_resources=stylesheet%2Cimage%2Cmedia"
舶来品 requests headers = { "apikey": "您的密码"} params = ( ("url","https://quotes.toscrape.com/js"), ("渲染","真"), ("block_resources","样式表、图像、媒体"), ); response = requests.get('https://app.zenscrape.com/api/v1/get', headers=headers, params=params); print(response.text)
变异 请求 = 要求(请求); 变异 选项 = { 网址: 'https://app.zenscrape.com/api/v1/get?apikey=YOUR-APIKEY&url=https://quotes.toscrape.com/js&render=true&block_resources=stylesheet,image,media' }; 功能 回调(错误、响应、正文) { 如果 (!error && response.statusCode == 200) { 游戏机.log(body); }} request(options, callback);
$ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER、 真); curl_setopt($ch, CURLOPT_HEADER、 错误); $data = [ "url" => "https://quotes.toscrape.com/js", "渲染" => "真", "block_resources" => "样式表、图像、媒体", ]; curl_setopt($ch, CURLOPT_URL、 "https://app.zenscrape.com/api/v1/get?" http_build_query($data)); curl_setopt($ch, CURLOPT_HTTPHEADER、 矩阵( "内容类型:应用程序/json", "apikey: YOUR-APIKEY", )); $response = curl_exec($ch); curl_close($ch); $json = json_decode($response); var_dump($json);
设置 Cookie
还可以使用 keep_headers=true
.然后,标头只需包含 cookie 名称和值即可。
https://app.zenscrape.com/api/v1/get?apikey=YOUR-APIKEY&url=https%3A%2F%2Fquotes.toscrape.com%2Fcookies&keep_headers=true
curl -H "Cookie:sessionid=27382738" \ "https://app.zenscrape.com/api/v1/get?apikey=YOUR-APIKEY&url=https%3A%2F%2Fquotes.toscrape.com%2Fcookies&keep_headers=true"
舶来品 requests headers = { "apikey": "您的密码", "饼干": "sessionid=27382738" } params = ( ("url","https://quotes.toscrape.com/cookies"), ("keep_headers","真"), ); response = requests.get('https://app.zenscrape.com/api/v1/get', headers=headers, params=params); print(response.text)
变异 请求 = 要求(请求);, 变异 标题 = { 用户代理: '123', 饼干: sessionid=27382738 }; 变异 选项 = { 网址: 'https://app.zenscrape.com/api/v1/get?apikey=YOUR-APIKEY&url=https://quotes.toscrape.com/cookies&keep_headers=true' }; 功能 回调(错误、响应、正文) { 如果 (!error && response.statusCode == 200) { 游戏机.log(body); }} request(options, callback);
$ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER、 真); curl_setopt($ch, CURLOPT_HEADER、 错误); $data = [ "url" => "https://quotes.toscrape.com/cookies", "keep_headers" => "真", ]; curl_setopt($ch, CURLOPT_URL、 "https://app.zenscrape.com/api/v1/get?" http_build_query($data)); curl_setopt($ch, CURLOPT_HTTPHEADER、 矩阵( "内容类型:应用程序/json", "apikey: YOUR-APIKEY",, "Cookie:sessionid=27382738" )); $response = curl_exec($ch); curl_close($ch); $json = json_decode($response); var_dump($json);
参考资料
免责声明:这部分内容主要来自商家。如果商家不希望在我的网站上显示,请 联系我们 删除您的内容。
最后更新于 5 月 15, 2022