企查查api接口操作

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

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

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏中间件兴趣圈

Elasticsearch Document Get API详解、原理与示例

本节将重点介绍ElasticSearch Doucment Get API(根据ID获取文档)。从《ElasticSearch Client详解》可知,Elas...

17620
来自专栏中间件兴趣圈

Elasticsearch Document Update API详解、原理与示例

从上述我们基本可以得知更新基本有3种方式,script、upsert、doc(普通更新)。

20830
来自专栏贾志刚-OpenCV学堂

OpenCV中保存不同深度图像的技巧

很多人开始学习OpenCV之后,接触前面几个API就包括imwrite函数,而且很快知道了如何去保存Mat对象为图像,常规代码如下:

76440
来自专栏中间件兴趣圈

源码分析Dubbo 泛化调用与泛化实现原理

通常是服务调用方没有引入API包,也就不包含接口中的实体类,故服务调用方只能提供Map形式的数据,由服务提供者根据Map转化成对应的实体。

26320
来自专栏中间件兴趣圈

Elasticsearch Query DSL概述与查询、过滤上下文

从本节开始,先详细介绍Elasticsearch Query DSL语法,该部分是SearchAPI的核心基础之一。

35230
来自专栏飞总聊IT

低代码开发平台,能让 CIO 们“快活”吗?

自从 Forrester 创造了“低代码开发平台”术语以来,每年都会对低代码开发平台领域做出报告分析,根据 Forrester 的报告,低代码开发平台市场将从2...

49230
来自专栏云计算D1net

混合云/多云时代的网络监控

目前,大多数企业使用两个或更多云计算服务提供商的云服务,35%的企业使用多达五个监控工具来密切关注混合云和多云环境。那么实现全面网络可视性的最佳方法是什么?

16210
来自专栏大话存储

GenZ,CXL,NVLINK,OpenCAPI,CCIX乱战!

广告:经历了长达数个月的伟光正红的5审5校之后,《大话计算机》一书终于在2019年3月30日送厂印刷,1500页,分3卷,视网膜分辨率,全彩印刷,硬壳精装!这就...

21030
来自专栏中间件兴趣圈

Elasticsearch Document Delete API详解、原理与示例

本节将重点介绍ElasticSearch Doucment Delete API(根据ID删除文档)。

27630
来自专栏中间件兴趣圈

Elasticsearch Search API 概述与URI Search

注意:search_type,request_cache和allow_partial_search_results这三个参数,必须查询url级别的参数(quer...

41220

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励