【问题标题】:(PHP) How to parse URLs in google search results?(PHP) 如何解析谷歌搜索结果中的 URL?
【发布时间】:2011-05-03 11:37:48
【问题描述】:

如何获取google搜索结果url?

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

我的功能是获取“雅虎”或其他查询搜索字符串的谷歌搜索结果: (该函数获取一个应该具有单词“yahoo”搜索结果的提要,但是当我使用 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 个第一个 url 结果(当我在 google 中手动搜索时):

www.yahoo.com、mail.yahoo.com、search.yahoo.com、maps.yahoo.com

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

请问我应该更改或添加什么 inqueryGoogleSearch() 功能? (或其他更好的代码)

谢谢

【问题讨论】:

    标签: php gdata-api gdata zend-gdata


    【解决方案1】:

    您是否正在尝试搜索 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 他们最近刚刚改变了这一点。自 11 月 1 日起,旧的 google 搜索 API 现已弃用。自定义搜索是新的 API。

    没有 Zend 使用起来非常简单。

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

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

    希望有帮助!

    【讨论】:

    • 谢谢!但是如果我需要进行大量搜索而不是 100 次或更多,我该如何使用自定义搜索? (“API 每天提供 100 个搜索查询”code.google.com/apis/customsearch/v1/overview.html
    • 如果需要更多可以增加。不过,您将需要一个正当的理由。看起来 google 正在远离 websearch api 以开始更多地跟踪它。对不起,我不能给你一个直截了当的答案,但真的没有别的办法。即使您使用 cURL 通过代理获取数据并解析出来,google 仍然会阻止您。
    • 非常感谢! (如果我使用 cURL + 代理,你确定谷歌会阻止我吗?)
    • 他们很可能会这样做。取决于您使用的代理类型以及不使用的代理类型。他们只允许在特定时间段内进行如此多的点击。您可以尝试,但最好的方法就是尽可能使用他们的 API。
    【解决方案2】:

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

    至于 PHP 你只需要添加到http://www.google.co.uk/search?q=的末尾

    【讨论】:

    • 谢谢,但您的回答与我的问题有什么关系?
    • 你的标题:“(PHP)如何获取google搜索结果的url?”问题文本:“如何获取 google 搜索结果 url?”、“我的函数来获取 'yahoo' 或其他查询搜索字符串的 google 搜索结果”。你暗示这就是你想要的,如果我误解了你的问题,我很抱歉。
    • 好的,我无法从 $feed 变量中获取 google 结果的 url 的问题
    猜你喜欢
    • 1970-01-01
    • 2013-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-04
    • 2021-08-23
    • 1970-01-01
    相关资源
    最近更新 更多