php - 使用 Bing.com 和 Bing Search API 的不同结果

标签 php xml api search bing

我正在使用 Bing Search API 2.0 (XML) 和 PHP 来检索结果。
但是在运行某些查询时,API 不会返回 Bing.com 会返回的(相同)结果。

当我发送此请求时:(这是使用 API)

http://api.search.live.net/xml.aspx?Appid=__________&query=3+ts+site%3Amycharity.ie/charity&sources=web&web.count=10&web.offset=0

我得到 0 个结果。

但如果我去 Bing.com 搜索培根,URL 将是:

http://www.bing.com/search?q=bacon&go=&form=QBRE&filt=all&qs=n&sk=&sc=8-5

所以如果我把我的 API 查询替换成这个 URL,就像这样:

http://www.bing.com/search?q=3+ts+site%3Amycharity.ie/charity&go=&form=QBRE&filt=all&qs=n&sk=&sc=8-5

我应该再次得到 0 个结果,对吧?

不,我得到了 1 个结果。 (我使用 API 寻找的结果)。
为什么是这样?有什么办法吗?

最佳答案

是的,Bing API 完全脑死亡并且完全没有用,因为这个事实。

但是,幸运的是,屏幕抓取是微不足道的:

<?

function searchBing($search_term)
{       
    $html = file_get_contents("http://www.bing.com/search?q=".urlencode($search_term)."&go=&qs=n&sk=&sc=8-20&first=$start&FORM=QBLH");

    $doc = new DOMDocument();
    @$doc->loadHtml($html);
    $x = new DOMXpath($doc);

    $output = array();

    // just grab the urls for now
    foreach ($x->query("//div[@class='sb_tlst']//a") as $node)          
    {

        $output[] = $node->getAttribute("href");

    }
    return $output;
}

print_r(searchBing("bacon"));

关于php - 使用 Bing.com 和 Bing Search API 的不同结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5804779/

相关文章:

java - 尝试完成授权时无法识别临时 token : FITBIT4J

php - 如果一个选项已经被选中,如何禁用它 (PHP - MYSQL)

PHP自编码算法

php - 使用 jQuery $.ajax 检索数据

php - 当我点击 EDIT 链接时,同一页面中的编辑表单不会出现

c# - XPath:从非根节点选择失败

java - 是否可以使用枚举或命名常量设置 bean 参数?

.net - 通过使用 .NET 读取/写入 XML 进行数据处理

api - Haskell:节目搞砸了?

php - 从维基百科 API 中提取数据