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.
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:

{ 4 trackbacks }
{ 13 comments… read them below or add one }
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!
Eric,
The wrapper is Open Source and released under the liberal GPL v3 license.
Hi,
I keep getting this error when using easy_install:
ImportError: No module named ez_setup
seems like you’re missing a file.
toxicafunk: You can get it from here. http://peak.telecommunity.com/DevCenter/EasyInstall
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
Ok, I figured it out. Just had to add “language:en” at the end of the query.
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
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
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
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
Python bing api : http://bit.ly/xhiBN
This comment was originally posted on Twitter
Python bing api : http://bit.ly/xhiBN (via @dnene)
This comment was originally posted on Twitter
Python Wrapper on Bing API — (via @dnene) http://ff.im/-6u8sm
This comment was originally posted on Twitter