接口服务网站的接口服务通常只能查询一条,那么如何批量调用呢?
网站的查询代码如下:
#coding=utf-8
#!/usr/bin/python
# 接口请求示例为:http://open.api.tianyancha.com/services/open/mr/abnormal/2.0?pageSize=20&keyword=企业名称&pageNum=1
# pip install requests
import requests
import time
import hashlib
import json
# token可以从数据中心 -> 我的接口中获取
token = "您的token"
encode = 'utf-8'
url ="http://open.api.tianyancha.com/services/open/mr/abnormal/2.0?pageSize=20&keyword=名称&pageNum=1"
headers={'Authorization': token}
response = requests.get(url,headers=headers)
#结果打印
print(response.status_code)
print(response.text)
但只能查询一家,如果我们有大量的数据,就需要改写python脚本来实现
批量查询代码如下:
# pip install requests
import requests
import time
import hashlib
import json
def main():
with open("文件目录/文件.txt", "r+", encoding="UTF-8") as file:
for i in file.readlines():
token = "你自己的token"
encode = 'utf-8'
i = i[:-1]
url = "http://open.api.tianyancha.com/services/open/mr/abnormal/2.0?pageSize=20&keyword="+str(i)+"&pageNum=1"
headers = {'Authorization': token}
response = requests.get(url, headers=headers)
# 结果打印
print(i)
print(response.status_code)
print(i,response.text)
if __name__ == '__main__':
main()
上面的代码中为txt文件,每个名称(代码中的keyword)为一行
代码中使用readlines()的方法来循环读取文件的每一行,并把每一行读出来的数据定义为了i
但是在python中读取文本类型文件时,在每一行的末尾都会有换行符。这个时候就不能够用python内的转义字符将其给去除掉了,因为它实际上是以一种特殊的不显示的形式存在,需要使用字符串切片的方式才可以将其给去除掉,如果不做以上的处理,str(i)拼接在url中会出现有换行的情况,导致本该有经营异常信息的也查询不出信息了,处理i(名称信息)的方式为:i = i[:-1]
这样就能将关键字有效的拼接在调用接口的url中并批量查询了