我试图让我围绕如何取得与PHP或JavaScript谷歌搜索结果的头。 我知道之前已经有可能,但现在我不能找到一种方法。
我想复制(有点)的功能
http://www.getupdated.se/sokmotoroptimering/seo-verktyg/kolla-ranking/
但真正的核心问题是我要解决的是只是为了获得通过PHP或JavaScript,其余的我可以计算出搜索结果。
使用的file_get_contents在获取结果()或卷曲似乎并没有工作。
例:
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, 'http://www.google.se/#hl=sv&q=dogs');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$result = curl_exec($ch);
curl_close($ch);
echo '<pre>';
var_dump($result);
echo '</pre>';
结果:
串(219)“302移动的文件已经搬到这里。”
因此,一些谷歌搜索,我发现http://code.google.com/apis/customsearch/v1/overview.html但似乎只用于产生一个或多个网站的自定义搜索工作。 它似乎需要一个“自定义搜索引擎”,通过CX-参数。
所以无论如何,任何想法?
我做到了前面。 通过使生成HTML内容https://www.google.co.in/search?hl=en&output=search&q=india
http请求,现在解析使用htmldom PHP库特定标签。 您可以使用解析结果页面的内容PHP简单的HTML DOM
DEMO:下面的代码会给你的所有结果的标题:
<?php
include("simple_html_dom.php");
$html = file_get_html('http://www.google.co.in/search?hl=en&output=search&q=india');
$i = 0;
foreach($html->find('li[class=g]') as $element) {
foreach($element->find('h3[class=r]') as $h3)
{
$title[$i] = '<h1>'.$h3->plaintext.'</h1>' ;
}
$i++;
}
print_r($title);
?>
有PHP 命名为谷歌的URL的GitHub的包 ,没有工作。
该API使用起来非常舒服。 见例如:
// this line creates a new crawler
$googleUrl=new \GoogleURL\GoogleUrl();
$googleUrl->setLang('en'); // say for which lang you want to search (it could have been "fr" instead)
$googleUrl->setNumberResults(10); // how many results you want to check
// launch the search for a specific keyword
$results = $googleUrl->search("google crawler");
// finaly you can loop on the results (an example is also available on the github page)
然而,你将不得不考虑使用每个查询之间的延迟,否则Google会认为你作为一个机器人,并要求您的验证码,将锁定脚本。
奇。 因为如果我做了curl
的命令一样,我收到了200 OK
:
curl -I 'http://www.google.se/#hl=sv&q=dogs'
HTTP/1.1 200 OK
Date: Sun, 27 Jan 2013 20:45:02 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=ISO-8859-1
Set-Cookie: PREF=ID=b82cb66e9d996c48:FF=0:TM=1359319502:LM=1359319502:S=D-LW-_w8GlMfw-lX; expires=Tue, 27-Jan-2015 20:45:02 GMT; path=/; domain=.google.se
Set-Cookie: NID=67=XtW2l43TDBuOaOnhWkQ-AeRbpZOiA-UYEcs7BIgfGs41FkHlEegssgllBRmfhgQDwubG3JB0s5691OLHpNmLSNmJrKHKGZuwxCJYv1qnaBPtzitRECdLAIL0oQ0DSkrx; expires=Mon, 29-Jul-2013 20:45:02 GMT; path=/; domain=.google.se; HttpOnly
P3P: CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info."
Server: gws
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Transfer-Encoding: chunked
此外,也许可以考虑设置urlencode
为通过URL所以这行:
curl_setopt($ch, CURLOPT_URL, 'http://www.google.se/#hl=sv&q=dogs');
更改此:
curl_setopt($ch, CURLOPT_URL, 'http://www.google.se/' . urlencode('#hl=sv&q=dogs'));