我想用文件获取内容功能抓取一些谷歌页面:
$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);
当我这样做时:
echo $ encoded;
我明白了:
http://www.google.co.il/#hl=en&biw=1440&bih=799&sclient=psy-ab&q=site:http%3A%2F%2Fstackoverflow.com%2F
当我把它放在网址中时......我得到了我想要的页面
但是当我使用这个功能时,我只是得到了主要的谷歌页面。为什么会这样?
答案 0 :(得分:4)
这是因为您使用谷歌新的客户端侧面功能。 #
之后的所有内容都是针对客户端的,服务器将为您提供http://www.google.co.il/
下的内容。
如果您想在自己的计划中使用Google搜索结果,请尝试使用其中一个API for custom search。在这个网址下有一个针对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]);
但我认为this have been deprecated之后(仍然会回应)。
答案 1 :(得分:1)
您可以删除网址中的#并使用?然后尝试一下
<?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);
答案 2 :(得分:0)
export PATH=$PATH:~/sencha/cmd/6.0.2.14/bin
;
$url = "https://www.google.co.in/gfe_rd=cr&ei=RCjlVsPSDPDI8Ae1nruADw&gws_rd=ssl#q=SUCCES"
为我提供Google Page而不是Google搜索页面...