繁体   English   中英

使用 Bing.com 和 Bing 搜索 API 的不同结果

[英]Different results using Bing.com and Bing Search API

我正在使用必应搜索 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 个结果。

但是如果我 go 到 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"));

看起来 API 请求实际上是在请求信息。 嗯,是的,但不完全是。 例子; 从必应搜索; "search?q=bacon&go=&form" 请注意其中的单词 bacon。 这似乎没有在 API 请求中以任何方式解析。 甚至不是十六进制值。 我相信这就是问题所在。

也许有一个问题,现在已经解决了......

目前,如果我尝试根据 Bing API 2.0 MSDN 进行以下查询,它们都会返回相同的单个结果:

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

http://api.bing.net/xml.aspx?Appid=______7&query=3+ts+site%3Amycharity.ie/charity&sources=web

http://api.bing.net/json.aspx?Appid=_______&query=3+ts+site%3Amycharity.ie/charity&sources=web

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM