Google Search API后端

时间:2009-06-26 09:08:04

标签: php api search

我想知道你们中是否有人知道如何实现一个后端系统,该系统将从谷歌检索搜索引擎优化信息(网站排名,谷歌的第一个X结果中的#ocurrences等)。

我知道Google AJAX Search API(code.google.com/apis/ajaxsearch/)将允许您检索内容而无需“wget”或“curl”,但使用搜索信息似乎不是legal(code.google.com/apis/ajaxsearch/terms.html)。

关于如何实现这一点的任何想法?

3 个答案:

答案 0 :(得分:2)

我已经调查了如何与谷歌这样做,而AFAICT真的没办法合法地做到这一点。由于他们的现金牛是那些SERP,他们不允许任何人因任何原因刮掉他们。

有很多服务会为你刮掉谷歌,但据我所知,他们都是针对谷歌的服务条款。如果你想办法合法地做到这一点,请告诉我。我猜测有一些人获得了许可,但我不确定他们是谁。

到目前为止我唯一的想法是:

  • 设置“代理服务器”,用于自动化客户Google查询。然后,代理可以查看结果并进行抓取,而不是“自动化”。如果用户输入20个术语,则打开20个帧,通过代理服务器进行搜索。
  • 回到网站上的网络流量。简而言之:我访问了您的网站,后台JavaScript调用会搜索Google并将结果发布到您的网站。这是不道德的,因为我可能想知道为什么“你的”搜索会出现在我的Google历史记录中。

问题是“自动化”。我有一种感觉,那些做这件事的服务实际上在世界各地都有计算机农场,以使它看起来(谷歌)它们没有被刮掉。我猜测,除非你开始从单个IP产生一些严重的流量,否则你会好一段时间。

也许你应该问一下吗?

答案 1 :(得分:0)

http://toolbarqueries.google.com这是Google工具栏使用(或曾经使用)获取链接的PageRank的内容。可以通过首先散列URL来检查指定的格式来轻松查询。

AFAIK它是一个未记录的API,因此不清楚使用它的法律含义。

的问候, DrSlump

答案 2 :(得分:0)

在同一文件夹中创建文件querygoogle.php

<?php
session_start();
// Here's the Google AJAX Search API url for curl. It uses Google Search's site:www.yourdomain.com syntax to search in a specific site. I used $_SERVER['HTTP_HOST'] to find my domain automatically. Change $_POST['searchquery'] to your posted search query

$url = 'http://ajax.googleapis.com/ajax/services/search/web?rsz=large&v=1.0&start=20&q=' . urlencode('' . $_POST['searchquery']);
// use fopen and fread to pull Google's search results
$handle = fopen($url, 'rb');
$body = '';
while (!feof($handle)) {
    $body .= fread($handle, 8192);
}
fclose($handle);

// now $body is the JSON encoded results. We need to decode them.
$json = json_decode($body);

// now $json is an object of Google's search results and we need to iterate through it.
foreach($json->responseData->results as $searchresult)
{
    if($searchresult->GsearchResultClass == 'GwebSearch')
    {
        $formattedresults .= '
    <div class="searchresult">
    <h3><a href="' . $searchresult->unescapedUrl . '">' . $searchresult->titleNoFormatting . '</a></h3>
    <p class="resultdesc">' . $searchresult->content . '</p>
    <p class="resulturl">' . $searchresult->visibleUrl . '</p>
    </div>';
    }
}

$_SESSION['googleresults'] = $formattedresults;
header('Location: ' . $_SERVER['HTTP_REFERER']);
exit;
?>

在同一文件夹中创建另一个文件search.php

<?php
session_start();
?>

<form method="post" action="querygoogle.php">
<label for="searchquery"><span class="caption">Search this site</span> <input type="text" size="20" maxlength="255" title="Enter your keywords and click the search button" name="searchquery" /></label> <input type="submit" value="Search" />
</form>

<?php
if(!empty($_SESSION['googleresults']))
{
    echo $_SESSION['googleresults'];
    unset($_SESSION['googleresults']);
}
?>

单击搜索按钮,结果将以echo $_SESSION['googleresults'];

打印