我正在使用 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/