前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >企查查api接口操作

企查查api接口操作

作者头像
周小董
发布2019-07-01 15:12:16
7.8K0
发布2019-07-01 15:12:16
举报
文章被收录于专栏:python前行者python前行者

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

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

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

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

多说无益,直接看图说话。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1)这里请求参数中key就是我的key

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

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

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

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

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

3、代码实现

代码语言:javascript
复制
# -*- 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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年06月30日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档