使用我们的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 集成方法。如果您想在您的查询中使用一些其他集成方法(如推拉 或代理端 点 ),请参考集成方法 部分。
查询参数
- 必须提供的参数
形成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
。