0x01 微软bing的api现在也放开了,可以供大家使用了,以前的v1板的时候采用的是appid的方式,这个网上有很多介绍了,可惜现在这个接口取消了,取而代之是新的认证方式
0x02 首先可以参考http://blogs.msdn.com/b/translation/p/gettingstarted1.aspx这个文章讲的就比较细了,注意的点不多,
0x3 首先注册的时候bing的应用(先注册个账号什么的就不用多说了),下来关键就是注册bing的search api 应用
https://datamarket.azure.com/browse/data?price=free&sort=name
这里面找,
点击进去,我们大多数穷人就选这个了
一路next下去,到最后完成后,可以打开My Account,看到如下界面就说明成功了,其中核心是Primary Account Key。
<!--[endif]-->
0x04 下来核心就是怎么用了,这里的文档讲的也比较细
https://skydrive.live.com/view.aspx?resid=9C9479871FBFA822!112&app=Word&authkey=!ANNnJQREB0kDC04
这里注意的点就比较多了,首先最重要的是api的认证方式,有两种,一种是OAuth2,一种是基本的401认证,其中OAuth2的方式比较正规和复杂点,但是管理性强些,而401认证就比较简单粗暴了,我用的是401认证的方式
0x05 401认证,顾名思义就是利用http 包头增加Authorization basic字段来实现认证。要注意的是这里认证的密码就是前面提到的Primary Account Key,用户名为空,
python中就是这个样子:
https:// api.datamarket.azure.com/Bing/Search/Web?'+ urllib.urlencode(payload)
AccountKey要注意的是,401认证的实质是在包头增加Authorization basic,而这里如果要直接代码实现的话,包头的内容应该增加如下:
Authorization basic base64.encode(":"+AccountKey)
一定要注意虽然用户名为空,但是冒号不能少,然后base64编码后,发送
payload的字段也很关键:
其中比较重要的是四个字段如下
$format 决定了返回的格式样式,是xml还是json,例如 $format=json
$top 决定了每一次返回的结果个数,类似于数据库分页中的limit,(0-50)。
$skip 决定了返回的起始数字,类似与数据库分页的start
Query 就是实际查询的语句,特别要注意,这里的查询语句需要用两个单引 号括起来,不然会报错注意要url编码下
其中前三个字段的开头都要有$符号,千万不能忘。
0x06 返回的json格式目前是
0x07 附上一段python利用代码
# coding=utf-8 """ Created on 2013-1-24 @author: icefish """ import urllib import urllib2 import base64 try: import json except ImportError: import simplejson as json #这里填上你申请到的bing的accout key 就可以了 AccountKey='XXXXXXX.....' top=50 skip=0 format='json' def BingSearch(query): payload={} payload['$top']=top payload['$skip']=skip payload['$format']=format payload['Query']="'"+query+"'" url='https://api.datamarket.azure.com/Bing/Search/Web?' + urllib.urlencode(payload) sAuth='Basic '+base64.b64encode(':'+AccountKey) headers = { } headers['Authorization']= sAuth try: req = urllib2.Request(url,headers=headers) response = urllib2.urlopen(req) the_page=response.read() #print the_page data=json.loads(the_page) return data except Exception as e: print e #print e.info() if __name__ == '__main__': data=BingSearch("abc") print data
相关推荐
使用python 调用api 创建openstack的user,network,subnet,image等
python调用github api ,http://api.github.com,查看仓库信息
Python调用公有云api操作手册.docx
python调用api代码。实现api的调用,参数的设置、返回信息的处理等。
python调用WEBSERVICE接口
运行此python文件可调用豆瓣api,有正在上映、即将上映、搜索等接口
腾讯云API调用,python调用API,腾讯云实例弹性ip
python调用迅雷sdk实现迅雷下载,不需要安装迅雷实现迅雷下载,所有调用的接口具体介绍,参考迅雷云加速开放平台文档 http://open.xunlei.com/wiki/tutorial.html 迅雷SDK只提供了32位的版本.所以python版本必须为32位...
Python 调用Java实例详解 前言: Python 对服务器端编程不如Java 所以这方面可能要调用Java代码 前提: Linux 环境 1 安装 jpype1 安装后测试代码: from jpype import * startJVM(getDefaultJVMPath(), "-ea...
调用API接口数据,抽取我们所需类型的数据,并写入指定mysql数据库。 先从宏观上看这个任务,并对任务进行分解: step1:需要学习python下的通过url读取数据的方式; step2:数据解析,也是核心部分,数据格式从...
python调用halcon程序/.hdev文件/直接调用halcon引擎, https://blog.csdn.net/sunnyrainflower/article/details/128364587
使用python调用chatgpt的Assistant API,我对几种常用的接口进行了封装,只需传入key即可调用,包含创建助理(Assistant ,列出助理(Assistant ),#创建线程 ,#聊天,#查询消息
使用python调用sendgrid api 发送免费邮件,s e n d g r i d 是一个商用的email 第三方服务网站,可用于发邮件和发短信等
python针对禅道登陆接口的自动化测试,+unittest+ddt接口自动化数据驱动并生成中文版的html报告;第一次写接口自动化的测试,学到很多东西,有不懂的客户加微信
Python调用win32API的一个实例.rar
博客简单介绍了Prometheus架构、基础概念、API使用,里面主要是Python调用Prometheus的API完整代码,需要自取即可。
初学python ,研究了几天,写了一个python 调用 有道api接口程序 效果看下图: 申明:代码仅供和我一样的初学者学习交流 有道api申请地址http://fanyi.youdao.com/openapi?path=data-mode 申请很简单的 ps:审核不用...
python调用大漠插件python调用大漠插件python调用大漠插件python调用大漠插件
Python项目案例开发从入门到实战源代码第4章 调用百度API应用——小小翻译器
Python调用WebService接口实例