-1

我想用文件获取内容功能抓取一些谷歌页面:

     $encoded='http://www.google.co.il/#hl=en&biw=1440&bih=799&sclient=psy-ab&q=site:'.urlencode("http://stackoverflow.com/");

    echo  file_get_contents($encoded);

当我这样做时:

回声$编码;

我明白了:

http://www.google.co.il/#hl=en&biw=1440&bih=799&sclient=psy-ab&q=site:http%3A%2F%2Fstackoverflow.com%2F

当我把它放在网址中时..我得到了我想要的页面

但是当我使用该功能时,我只是得到了谷歌主页..为什么会发生这种情况?

4

3 回答 3

4

这是因为您的网址使用了谷歌新的客户端功能。之后的一切都是#给客户端的,服务器会为你提供 . 下的内容http://www.google.co.il/

更新

如果您想在您的程序中使用 google 搜索结果,请尝试使用他们的API 之一进行自定义搜索。在这个 url 下有一个用于 ajax 客户端的搜索网络服务:

http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=your+term+goes+here

它以 JSON 格式返回结果,第一个结果在responseData->results数组下:

$search_results = json_decode(file_get_contents('http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=your+term+goes+here'), true);
var_export($search_results['responseData']['results'][0]);

但我认为这已经被弃用了(但是仍然响应)。

于 2012-08-30T07:14:34.433 回答
1

您可以删除 URL 中的 # 并使用 ? 然后试试

<?php
$encoded='http://www.google.co.il/?hl=en&biw=1440&bih=799&sclient=psy-ab&q=site:'.urlencode("http://stackoverflow.com/");

echo  file_get_contents($encoded);
于 2012-08-30T07:16:43.813 回答
0

$url = "https://www.google.co.in/gfe_rd=cr&ei=RCjlVsPSDPDI8Ae1nruADw&gws_rd=ssl#q=SUCCES";

echo  file_get_contents($url);

给我谷歌页面,但不是谷歌搜索页面......

于 2016-03-13T09:58:12.893 回答