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

11
我正在使用 Bing 搜索 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搜索bacon,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中寻找的结果)。
为什么会这样?有没有什么办法可以避免这种情况?


2
点赞支持相似的问题。我也看到了完全相同的情况,还有类似的特定于网站的查询。我已经问过这个问题,并不断收到来自bing.com人员的回复:“这是不可能的,因为它都使用相同的代码库。” - Alex S.
我遇到了同样的问题。使用API时,我经常错过第一个结果。有人有解决方案吗?这应该与我们使用的API版本有关。 请检查此网站:azbul.net 他们也使用Bing,但结果与bing.com上的结果相同。Haran - user969083
我有一个类似的问题,就是API和Bing.com之间的搜索结果不同。API没有返回那么多结果,并且它返回了Bing.com没有的项目。我在Bing社区中找到了以下论坛帖子。也许有一天其中一个会得到答案并解决这个问题。Bing API论坛帖子 - user392139
Bing刚刚发布了一条一般性的消息,称他们修复了API 2.0搜索API。虽然没有太多具体信息,但你可能想要查看一下:http://www.bing.com/community/developer/f/12254/t/671908.aspx - Ellie Kesselman
我也一样,在2017年!:( - Giovanni Bitliner
3个回答

3

是的,由于这个事实,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"));

这段代码运行得非常好... 但是我无法成功获取 //*[@id='count'] 的结果计数... 如果能帮忙解决问题,我将不胜感激 =) - Enissay

0

可能之前有问题,现在已经解决了...

目前,如果我尝试使用根据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

0

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


2
错误。在我使用Bing.com的例子中,我说“如果我去Bing.com搜索培根,URL将是”,即只需在文本字段中键入“培根”并单击搜索。然后,URL http://www.bing.com/search?q=bacon&go=&form=QBRE&filt=all&qs=n&sk=&sc=8-5 是Bing.com发送回给我的URL。 - Adam Lynch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接