(PHP)如何解析谷歌搜索结果中的URL?

时间:2010-11-01 15:21:14

标签: php gdata-api gdata zend-gdata

如何获取Google搜索结果网址?

(我使用Zend_Gdata_Gbase获取搜索谷歌搜索结果,而不是DomDocument / htmlsimpleparser,因为它看起来Zend_Gdata_Gbase专门用于解析谷歌搜索结果。 如果我选择错了,请写信。)

我的功能是获取'yahoo'或其他查询搜索字符串的Google搜索结果: (该函数获取一个应该具有单词'yahoo'的搜索结果的feed,但是当我使用prin_t($ feed)时,我没有看到每个结果的url)

<?php    
function queryGoogleSearch($queryString='yahoo'){
            $service = new Zend_Gdata_Gbase();
            $query = $service->newSnippetQuery();
            $query->setBq('['.$queryString.']');
            $query->setOrderBy('modification_time');
            $query->setSortOrder('descending');
            $query->setMaxResults('4');
            $feed = $service->getGbaseSnippetFeed($query);
            return $feed; 
    }
    print_r(queryGoogleSearch());
?>

我得到4个第一个网址结果(当我在谷歌手动搜索时):

www.yahoo.com,mail.yahoo.com,search.yahoo.com,maps.yahoo.com

但是当我打印$ feed变量时我找不到它们。

请问我应该更改或添加inqueryGoogleSearch()函数? (或其他更好的代码)

由于

2 个答案:

答案 0 :(得分:5)

您是否正在尝试搜索google.com。看起来该类适用于Google Base,而不是google.com搜索引擎。 http://base.google.com/support/bin/answer.py?hl=en&answer=59260

您可能想要这样:http://code.google.com/apis/customsearch/v1/overview.html 他们最近改变了这个。旧的Google搜索API现已于11月1日弃用。自定义搜索是新的API。

没有Zend就可以使用它。

http://code.google.com/apis/customsearch/v1/using_rest.html#WorkingResults

PHP中有一个JSON解码器。 http://php.net/manual/en/function.json-decode.php

希望有所帮助!

答案 1 :(得分:0)

谷歌搜索网址非常简单,我记录了它here for a different reason。当您搜索某些内容时,例如“博客”,您发送的页面为http://www.google.co.uk/search?q=blog。那之后呢?被称为查询字符串(在本例中为q = blog),其中包含我的搜索。修改它将修改谷歌搜索字符串,并返回适当的结果。

对于PHP,您只需要添加到http://www.google.co.uk/search?q=

的末尾