利用Bing Search API进行搜索

来源:互联网 发布:手机淘宝双收藏怎么弄 编辑:程序博客网 时间:2024/06/04 18:43

0X01 

Bing的搜索接口又原来的免费版改成现在的收费版。新版申请帐号后每个月有5000条的免费搜索次数,注册连接https://datamarket.azure.com/browse/data?price=free&sort=name,找到如下两个应用


0X02 

申请好后,得到系统分配的key,接下来看下怎么利用。

微软给我们提供的接口如下:https:// api.datamarket.azure.com/Bing/Search/Web?'+ urllib.urlencode(payload)

在发送请求的时候要把Authorization和user-agent加上,格式为:

    headers = { }  
    headers['Authorization']= 'Basic '+base64.b64encode(':'+AccountKey)   #Basic后有一个空格
    headers['user_agent'] = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; FDM; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 1.1.4322)'

payload中要包含几个字段:

$format  决定了返回的格式样式,是Atom(xml)还是json,默认是Atom

$top     决定了每一次返回的结果个数 (默认是50条)。  

$skip    决定了返回的起始数字,类似与数据库分页的start

Query    就是实际要查询的内容,特别要注意,这里的查询语句需要用两个单引  号括起来,不然会报错注意要url编码下

官方给出了详细的接口文档 https://onedrive.live.com/view.aspx?resid=9C9479871FBFA822!112&app=Word&authkey=!ANNnJQREB0kDC04 


0X03

我们将$format的值设为json,返回的结果保存到文件中,看下数据格式


这里需要注意的是,如果你的python代码的编码格式用的不是UTF-8的话,在读取bing返回结果的时候需要进行转码,关于json转码问题可以参考

http://stackoverflow.com/questions/13940272/python-json-loads-returns-items-prefixing-with-u

https://developer.decibel.net/sample-code-rest-python


0X04

最后对返回的json串进行解析就行了

result_list = data['d']['results'] 

for i in result_list:

print i['Url']



0 0