利用Bing Search API进行搜索
2014-12-02 11:05
387 查看
0X01
Bing的搜索接口又原来的免费版改成现在的收费版。新版申请帐号后每个月有5000条的免费搜索次数,注册连接https://datamarket.azure.com/browse/data?price=free&sort=name,找到如下两个应用
![](http://dl.iteye.com/upload/attachment/0079/8134/233c9935-96b5-3f84-a886-bb4f9e543fc5.jpg)
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,返回的结果保存到文件中,看下数据格式
![](https://img-blog.csdn.net/20141206235032921?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXV5ZWxpbmd0aW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
这里需要注意的是,如果你的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']
Bing的搜索接口又原来的免费版改成现在的收费版。新版申请帐号后每个月有5000条的免费搜索次数,注册连接https://datamarket.azure.com/browse/data?price=free&sort=name,找到如下两个应用
![](http://dl.iteye.com/upload/attachment/0079/8134/233c9935-96b5-3f84-a886-bb4f9e543fc5.jpg)
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']
相关文章推荐
- C++通过gSOAP使用Bing API进行搜索
- 利用sklearn api gridsearch 进行keras参数调优
- 安卓开发笔记①:利用高德地图API进行定位、开发电子围栏、天气预报、轨迹记录、搜索周边(位置)
- 利用Bing API开发的搜索工具(MVC+WCF)
- 安卓开发笔记①:利用高德地图API进行定位、开发电子围栏、天气预报、轨迹记录、搜索周边(位置)
- 利用Google Custom Search API抓取google搜索内容
- 安卓开发笔记①:利用高德地图API进行定位、开发电子围栏、天气预报、轨迹记录、搜索周边(位置)
- Android 利用高德地图API进行定位、开发电子围栏、天气预报、轨迹记录、搜索周边(位置)
- 利用Yahoo! Search API开发自已的搜索引擎-php版
- 利用Lucene.net搜索引擎进行多条件搜索的做法
- 利用第三方的API实现网页搜索
- MOSS Search学习记录(五):利用元数据和规则搜索多个列表中指定范围的内容
- VB利用API进行媒体播放
- 利用Yahoo! Search API开发自已的搜索引擎-php版
- 在VB中利用API进行串口通信
- 利用google或者baidu进行站外搜索
- 利用Lucene.net搜索引擎进行多条件搜索的做法
- 枚举进程(2)——利用EPROCESS/PEB地址特征进行内存搜索
- MOSS Search学习记录(四):利用规则搜索指定文件夹的内容
- 利用Lucene.net搜索引擎进行多条件搜索的做法