10

結果を取得するためにBingSearchAPI 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で探していた結果)。
どうしてこれなの?とにかくこれの周りにありますか?

4

3 に答える 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"));
于 2012-01-15T22:49:14.560 に答える
0

API リクエストが実際に情報をリクエストしているようには見えません。まあ、そうですが、完全ではありません。例; ビング検索から; "search?q=bacon&go=&form" ベーコンという単語に注意してください。これは、API リクエストで何らかの方法で解析されているようには見えません。16 進値としてもありません。ここに問題があると思います。

于 2011-05-05T00:37:56.243 に答える
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
于 2012-01-31T06:55:21.337 に答える