lakshman
Comments
Reactions

Python Wrapper on Bing API

By : lakshman

The newly launched search engine Bing has a simple restful API. We have created a thin Python wrapper over this API, which allows to query the Bing servers in a very pythonic way.

Installing this is as easy as easy_install bingapi.

[Or get it here or here ]

Using

from bingapi import bingapi
bing = bingapi.Bing(<appid>)
bing.do_web_search('Usware Technologies')

The README from the project is posted below, which provides more details on using this.

bingapi.py is a very thin python wrapper over the Bing API. Bing provides a very simple Restful interface to their search engine and provides results in JSON and XML interface.

With bingapi.py, we query the rest urls to get the JSON response, which is parsed with simplejson.py. bingapi.py just adds simple niceties like logging and error handling.

Installing bingapi.py

easy_install bingapi

or Svn it from https://svn.uswaretech.com/bingapi/

Using bingapi.py

To use this library, you need to have an Appid from Bing. You can get it from http://www.bing.com/developers/createapp.aspx

The meat of bingapi.py is talk_to_bing function. It takes a query(eg. salsa) and a sources(eg. web) and other optional parameters in extra_args (eg. {'web.offset': 40}) and returns the dictionary of Bing's response.

eg

In [2]: from bingapi import bingapi

In [3]: bing = bingapi.Bing('<Your Appid>')

In [4]: bing.talk_to_bing('salsa', sources='web')
Out[4]: 
..........

In [5]: bing.talk_to_bing('salsa', sources='web', extra_args={'web.offset':40})
Out[5]: 
..........

Class Bing also provides utility functions to do the various types of seraches so you dont have to remember the source type.

The various functions available are,

do_web_search
do_image_search
do_news_search
do_spell_search
do_related_search
do_phonebook_search
do_answers_search

All of them are used similarly.

In [6]: bing.do_web_search('salsa')
Out[6]: 
..........

In [7]: bing.do_image_search('salsa')
Out[7]: 
..............

In [8]: bing.do_answers_search('what is salsa')
Out[8]: 
...............

If you want to use multiple sources in one call you can use talk_to_bing directly as

In [10]: bing.talk_to_bing(query='salsa', sources='web news')
Out[10]:
............

But, but.. Why bing? you ask. Well, other than the fact that bing search is indeed better in some areas, particularly multimedia, bing has fairer usage quota and API restrictions.

Resources


Developing a search mashup? Bing API? Yahoo, Google APIs? We can help.


Related Posts


Can we help you build amazing apps? Contact us today.

Comments

Developer Blog

Bing it on!...

Ten days have passed since we launched the new Bing API, and we are happy to share with you, the developer...

commmenttor
Erik Karulf

Hi All,

Two questions
1) What is the project license?
2) Could you try importing Python 2.6's builtin json module and fall back to simplejson ?

Thanks!

commmenttor
Lakshman

Eric,

The wrapper is Open Source and released under the liberal GPL v3 license.

commmenttor
toxicafunk 13th June, 2009

Hi,

I keep getting this error when using easy_install:

ImportError: No module named ez_setup

seems like you're missing a file.

commmenttor
Pablo 22nd July, 2009

Thanks for this tool but, is there any way to modify the language setting ?
(for eg, I'm in france but sending queries in "english"... the result contains only "french")
any help ?
Thanks

commmenttor
Pablo 23rd July, 2009

Ok, I figured it out.
Just had to add "language:en" at the end of the query.

commmenttor
Jeff 6th Feb., 2012

talk_to_bing returns 10 results by default, or I'm doing something wrong. I was expecting 40. Still, works great. Thanks!

commmenttor
pybing-user 27th June, 2012

Are there plans to update this? With the new Search API 2.0, AppID isn't supported anymore - and you need to use a Account Key instead, and authentication step is very different.

commmenttor

Reactions

mdipierro

The great thing about this is that the code (bingapi.py) consists of 64 lines total of pure python code with no dependencies. Works out of the box with any Python code.

This comment was originally posted on Reddit

jimmybot

Haven’t been testing out Bing like some of the others out there. Just took a quick look at Bing news search–they incorporate news results with top blogs? That seems interesting to me. Is that unique, anyone know? I don’t see it in Google News.

This comment was originally posted on Hacker News

jerf

OK, great, but can we please avoid the "Bing API for X" flurry from here on out? Yes, I’m sure there will soon be Bing APIs for Clojure, Haskell, Perl, PHP, C, C++, and so on and so forth.If I want them, I’ll Google for them.

This comment was originally posted on Hacker News

jmatt

Agreed.As for the actual api it’s here:

http://msdn.microsoft.com/en-us/library/dd251056.aspx

This comment was originally posted on Hacker News

dnene

Python bing api : http://bit.ly/xhiBN

This comment was originally posted on Twitter

rubayeet

Python bing api : http://bit.ly/xhiBN (via@dnene)

This comment was originally posted on Twitter

mandarvaze

Python Wrapper on Bing API — (via@dnene) http://ff.im/-6u8sm

This comment was originally posted on Twitter

Post a comment Name :

Email :

Your site url:

Comment :

© Agiliq, 2009-2012