[630]企查查api接口操作

企查查api接口中心:http://openapi.qichacha.com/DataCenter

1、了解需求,申请接口。

想要通过企业的统一信用代码或者企业名称查询企业的注册地址,所以申请的企业工商数据里面的企业关键字精确获取详细信息(Basic)。如果有别的需要,另外申请就可以了。在我的接口里面有我的key和我的密钥,注意,这两个后面东西会用到。

2、了解请求参数设置以及返回数据的格式

多说无益,直接看图说话。
[630]企查查api接口操作_第1张图片
[630]企查查api接口操作_第2张图片
1)这里请求参数中key就是我的key

keyword就是查询的关键字(企业名称、注册号、社会统一信用代码)

权限验证这里有点复炸,当初博主在这里也是愣了好久,现在想来其实挺简单的。其实就是构造一个请求头,请求头里面有两个字段,一个是 Token,另一个是Timespan。

Timespan就是精确到秒的时间戳。

Token就是将我的key、精确到秒的时间戳、我的密钥三个东西拼接,然后使用md5加密算法进行加密,加完密之后再所有字符串全部转化为大写。

2)返回的数据一般分两种,有些接口只返回json格式的数据。我们直接解析提取相应格式获取数据就可以。

3、代码实现

# -*- coding:utf-8 -*-
import requests,time,json
from hashlib import md5


'''
企查查api接口中心:http://openapi.qichacha.com/DataCenter
'''

class qichahca_api():

    def __init__(self):
        self.key = 'b077ec2d'
        self.screat_key = '5519427B7'
        self.basic_info_url = "http://api.qichacha.com/ECIV4/GetBasicDetailsByName?key=%s&dtype=json&keyword={keyword}"%self.key

    # 获取时间戳
    def get_time_tup(self):
        """
        :return: 13位精确到秒的时间戳
        """
        time_tup = str(int(time.time()))
        return time_tup

    # md5加密
    def set_md5(self,in_str):
        """
        :param in_str: 拼接的字符串
        :return: md5加密再转化为大写的字符串
        """
        new_md5 = md5()
        new_md5.update(in_str.encode(encoding='utf-8'))
        s_md5 = new_md5.hexdigest().upper()
        return s_md5

    # 设置请求头
    def get_headers(self,key,screat_key):
        """
        :param key: 我的key
        :param screat_key: 我的密钥
        :return: 请求头
        """
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36',
            # 'User-Agent': 'Mozilla/5.0 (Linux; Android 7.0; SM-G935P Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.111 Mobile Safari/537.36',
            'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
            'Accept-Language': 'zh-CN,zh;q=0.9',
            'Accept-Encoding': 'gzip, deflate, br',
            'Connection': 'keep-alive',
            # 'Host': 'www.qichacha.com',
        }
        token = key + self.get_time_tup() + screat_key
        headers["Token"] = self.set_md5(token)
        headers["Timespan"] = self.get_time_tup()
        return headers

    def get_data(self,company_list):
        for company in company_list:
            url=self.basic_info_url.format(keyword=company)
            print('url:%s'%url)
            response=requests.get(url=url,headers=self.get_headers(self.key,self.screat_key))
            rows=json.loads(response.text)
            print(rows)


if __name__ == '__main__':
    company_list=[
        "小米科技有限责任公司",
    ]
    re_aqi = qichahca_api()
    re_aqi.get_data(company_list)

参考:https://blog.csdn.net/lzm475041893/article/details/88982909

你可能感兴趣的:(爬虫)