使用我们的universal
源代码抓取其他搜索引擎。它接受URL以及附加参数。您可以在下表中找到可用参数的列表。
概述
以下是我们支持的所有可用数据源值与其他目标的快速概述。
代码示例
在下面的示例中,我们发出请求以获取提供的百度URL的结果。
cURL Python HTTP PHP JSON
Copy curl 'https://realtime.oxylabs.io/v1/queries' \
--user 'USERNAME:PASSWORD' \
-H 'Content-Type: application/json' \
-d '{
"source": "universal",
"url": "http://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&ch=&tn=baidu&bar=&wd=adidas"
}'
Copy import requests
from pprint import pprint
# Structure payload.
payload = {
'source': 'universal',
'url': 'http://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&ch=&tn=baidu&bar=&wd=adidas'
}
# Get response.
response = requests.request(
'POST',
'https://realtime.oxylabs.io/v1/queries',
auth=('user', 'pass1'),
json=payload,
)
# Instead of response with job status and results url, this will return the
# JSON response with results.
pprint(response.json())
Copy # URL has to be encoded to escape `&` and `=` characters:
# URL: http://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&ch=&tn=baidu&bar=&wd=adidas
# Encoded URL: http%3A%2F%2Fwww.baidu.com%2Fs%3Fie%3Dutf-8%26f%3D8%26rsv_bp%3D1%26rsv_idx%3D1%26ch%3D%26tn%3Dbaidu%26bar%3D%26wd%3Dadidas
https://realtime.oxylabs.io/v1/queries?source=universal&url=http%3A%2F%2Fwww.baidu.com%2Fs%3Fie%3Dutf-8%26f%3D8%26rsv_bp%3D1%26rsv_idx%3D1%26ch%3D%26tn%3Dbaidu&bar=&wd=adidas&access_token=12345abcde
Copy <?php
$params = array(
'source' => 'universal',
'url' => 'http://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&ch=&tn=baidu&bar=&wd=adidas'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://data.oxylabs.io/v1/queries");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($params));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERPWD, "user" . ":" . "pass1");
$headers = array();
$headers[] = "Content-Type: application/json";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
echo $result;
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close($ch);
Copy {
"source": "universal",
"url": "http://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&ch=&tn=baidu&bar=&wd=adidas"
}
以上示例使用了 Realtime 集成方法。如果您想在您的查询中使用一些其他集成方法(如推拉 或代理端 点 ),请参考集成方法 部分。
查询参数
用于检索数据的代理的地理定位。单击此处 查看支持位置的完整列表。
如果正在下载图像,请添加此参数。单击此处 了解更多相关信息。
Base64 编码的 POST
请求正文。只有将 http_method
设为 post
时才有用。
context
:
follow_redirects
表明您是否希望爬虫程序遵循重定向(带有目标 URL 的 3xx 响应)以获得重定向链末端的 URL 内容。
如果您希望通过 网络爬虫 API 程序向您的目标 URL 发出 POST
请求,则可以将其设置为 post
。
I如果要在多个请求中使用同一个代理,则可以通过使用该参数来实现。只要将您的会话设置为您想要的任何字符串,我们就会为该 ID 分配一个代理,并最长保留 10 分钟。之后,如果使用相同的会话 ID 提出另一个请求,我们将为该特定会话 ID 分配一个新代理。
context
:
successful_status_codes
定义一个或几个自定义的 HTTP 响应代码,我们将根据此代码确定爬取是否成功,并将相关内容返回给您。如果您希望我们返回 503 错误页面,则该参数可能很有用,同时也适用于其他一些非标准的情况。
- 必须提供的参数
形成URL
百度
作业参数分配到URL:
Copy https://<subdomain>.baidu.<domain>/s?ie=utf-8&wd=<query>&rn=<limit>&pn=<calculated_start_page>
当形成URL时,请遵循以下说明:
编码搜索词 :搜索词必须进行URL编码。例如,空格应替换为%20,这代表URL中的空格字符。
计算起始页 :start_page参数现在对应要跳过的搜索结果数量。使用公式 limit * start_page - limit
计算值。
子域分配 :子域值取决于作业中提供的用户代理类型。如果用户代理类型包含mobile,则子域值应为m。否则,应为www。
查询参数 :根据子域值(m或www),查询参数应相应调整(对于m为word,对于www为wd)。
示例生成的URL
Copy https://m.baidu.com/s?ie=utf-8&word=test&rn=10&pn=20
Copy https://www.baidu.com/s?ie=utf-8&wd=test%20query&rn=13
等效作业示例
Copy {
"source": "baidu_search",
"query": "test",
"domain": "com",
"limit": 5,
"start_page": 3,
"user_agent_type": "desktop"
}
Copy {
"source": "universal",
"url": "https://www.baidu.com/s?ie=utf-8&wd=test&rn=5&pn=10",
"user_agent_type": "desktop"
}
Yandex
作业参数分配到URL:
Copy https://yandex.<domain>/search/?text=<query>&numdoc=<limit>&p=<start_page>&lr=<geo_location>
当形成URL时,请遵循以下说明:
编码搜索词 :搜索词必须进行URL编码。例如,空格应替换为%20
,这代表URL中的空格字符。
起始页调整 :start_page
的值必须减1。例如,如果所需的起始页为3,则URL中的页码值应为2。
本地化 :如果域名为ru
或tr
,则添加一个附加查询参数lr
,并赋值为geo_location
。对于其他域名,geo_location
值在查询参数rstr
下,且值前加一个-符号。
不支持 :pages参数不再支持。必须通过更改URL中的当前页码值分别提交作业。
生成的URL示
Copy https://yandex.ru/search/?text=test&numdoc=5&p=0&lr=100
Copy https://yandex.com/search/?text=test%201&numdoc=10&p=2&rstr=-100
等效作业示例
Copy {
"source": "yandex_search",
"query": "test",
"domain": "com",
"limit": 5,
"start_page": 3,
"geo_location": 100,
"results_language": "en"
}
Copy {
"source": "universal",
"url": "https://yandex.ru/search?text=adidas&numdoc=5&p=2&lr=100&lang=en"
}
参数值
Geo_Location
请在下方查看支持地理位置的完整列表。
示例如下:
Copy "United Arab Emirates",
"Albania",
"Armenia",
"Angola",
"Argentina",
"Australia",
...
"Uruguay",
"Uzbekistan",
"Venezuela Bolivarian Republic of",
"Viet Nam",
"South Africa",
"Zimbabwe"
HTTP_Method
通用 Crawler 支持两种 HTTP 方法。GET
(默认)和POST
。
Last updated 8 months ago