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

时间:2011-04-27 13:20:35

标签: 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搜索培根,网址就是:

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​​寻找的结果)。
为什么是这样?反正有吗?

3 个答案:

答案 0 :(得分: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"));

答案 1 :(得分:0)

看起来API请求实际上并不是在请求信息。嗯,这是,但不完全。例; 来自bing搜索; “搜索?q =培根&amp; go =&amp; form”注意培根一词。 这似乎不会在API请求中以任何方式解析。甚至不是十六进制值。我相信这就是问题所在。

答案 2 :(得分:0)

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

目前,如果我正在尝试以下查询made according to the 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