如何使用Google API模拟真正的浏览器进行搜索?

时间:2013-09-12 17:46:28

标签: php curl google-api

目前我正在使用类似代码的东西:

$tracks[0] = 'insert popular random song here';
$query = urlencode($tracks[0]." download 4shared");
$url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=".$query;
$json = json_decode(file_get_contents($url));

echo $json->responseData->results[0]->url."<br/>";
echo $json->responseData->results[1]->url."<br/>";
echo $json->responseData->results[2]->url;

当我从浏览器中搜索google上的“chop suey download 4shared”时,它会返回一些4shared下载页面,但是当我上面列出的方法时,它会返回一些来自soundcloud的随机链接并从4shared中搜索,这完全是对我的目的毫无用处。我在Firefox,Chrome和Chrome Incognito上尝试过它

如何使用Google API搜索获得与浏览器相同的结果?

修改

通过更改查询部分解决了问题:

$query = "site:4shared.com+".str_replace(' ', '+', $track[0]);

1 个答案:

答案 0 :(得分:0)

你没有。

您会从浏览器搜索中获得不同的结果,因为Google通常会知道您的身份并定制其搜索结果,以便更适用于。如果您从其他人的浏览器进行搜索,您将得到不同的结果。

当您通过API运行查询时我假设您的服务器Google没有您的个人资料,或者可能没有任何个人资料,并根据该结果集返回结果集。

这称为Filter Bubble,一旦你知道自己在一个人身上就会有点真气。