打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
用 Python 写个简单的天眼查GUI版本吧~

导语

无他,就是想带大家写个小爬虫,感觉从来没爬过天眼查,好像之前有小伙伴想让我试试,于是就动手试了下,顺便分享给大家。

废话不多说,让我们愉快地开始吧~

开发工具

Python版本:3.7.8

相关模块:

requests模块;

pyqt5模块;

以及一些python自带的模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

原理简介

好像没啥原理,就是请求接口之后把返回的数据提取出来翻译成了中文:

'''查询公司'''def query(self):    company_name = self.edit.text()    # 获取基本信息    headers = {        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36',        'version': 'TYC-XCX-WX',        'Host': 'api9.tianyancha.com',        'Authorization': '0###oo34J0VKzLlpdvf8kgFkMlfU_IPY###1642087379312###22494f3155c2e5a4be76e503837fa439',        'x-auth-token': 'eyJkaXN0aW5jdF9pZCI6IjE3ZDFjNWVhMzZjNGY2LTA5ZjU2NWUwNWViNTZjLTFjMzA2ODUxLTIwNzM2MDAtMTdkMWM1ZWEzNmRiMzYiLCJsaWIiOnsiJGxpYiI6ImpzIiwiJGxpYl9tZXRob2QiOiJjb2RlIiwiJGxpYl92ZXJzaW9uIjoiMS4xNS4yNCJ9LCJwcm9wZXJ0aWVzIjp7IiR0aW1lem9uZV9vZmZzZXQiOi00ODAsIiRzY3JlZW5faGVpZ2h0IjoxMDgwLCIkc2NyZWVuX3dpZHRoIjoxOTIwLCIkbGliIjoianMiLCIkbGliX3ZlcnNpb24iOiIxLjE1LjI0IiwiJGxhdGVzdF90cmFmZmljX3NvdXJjZV90eXBlIjoi6Ieq54S25pCc57Si5rWB6YePIiwiJGxhdGVzdF9zZWFyY2hfa2V5d29yZCI6IuacquWPluWIsOWAvCIsIiRsYXRlc3RfcmVmZXJyZXIiOiJodHRwczovL3d3dy5nb29nbGUuY29tLyIsImN1cnJlbnRfdXJsIjoiaHR0cHM6Ly93d3cudGlhbnlhbmNoYS5jb20vc2VhcmNoP2tleT0lRTYlOUQlQUQlRTUlQjclOUUlRTYlOTklQUUlRTUlODUlQjQlRTQlQkMlODElRTQlQjglOUElRTclQUUlQTElRTclOTAlODYlRTUlOTAlODglRTQlQkMlOTklRTQlQkMlODElRTQlQjglOUEiLCJyZWZlcnJlciI6Imh0dHBzOi8vd3d3LnRpYW55YW5jaGEuY29tL3NlYXJjaD9rZXk9JUU2JTlEJUFEJUU1JUI3JTlFJUU2JTk5JUFFJUU1JTg1JUI0JUU0JUJDJTgxJUU0JUI4JTlBJUU3JUFFJUExJUU3JTkwJTg2JUU1JTkwJTg4JUU0JUJDJTk5JUU0JUJDJTgxJUU0JUI4JTlBIiwidHljaWQiOiI0MmMxZTY1MDQ0ZjYxMWVjYmIxZDY3ZmJiYzEwN2U3NSIsIm5hbWUiOiLmna3lt57mma7lhbTkvIHkuJrnrqHnkIblkIjkvJnkvIHkuJoiLCJtb2R1bGUiOiLkvJjotKjlrp7lkI3orqTor4EiLCIkaXNfZmlyc3RfZGF5IjpmYWxzZX0sImFub255bW91c19pZCI6IjE3ZDFjNWVhMzZjNGY2LTA5ZjU2NWUwNWViNTZjLTFjMzA2ODUxLTIwNzM2MDAtMTdkMWM1ZWEzNmRiMzYiLCJ0eXBlIjoidHJhY2siLCJldmVudCI6InNlYXJjaF9yZXN1bHRfZXhwdXJlIiwiX3RyYWNrX2lkIjo3MjUyNDM3Mjd9',    }    url = f'https://api9.tianyancha.com/services/v3/search/sNorV3/{company_name}'    response = requests.get(url, headers=headers)    response_json, data = response.json(), dict()    if response_json['state'] == 'ok':        data = response_json.get('data', {})    # 基本信息提取    company_info = {'未查询到该公司相关的信息': ''}    if data:        company, brand_and_agency = data['companyList'][0], {}        for item in data['brandAndAgencyList']:            if item['graphId'] == company['id']:                brand_and_agency = item                break        detail = requests.get(f'https://api9.tianyancha.com/services/v3/t/common/baseinfoV5/{company["id"]}', headers=headers).json().get('data', {})        company_info = {            '公司外部系统ID': company.get('id', ''),            '公司名称': company.get('name', '').replace('<em>', '').replace('</em>', ''),            '公司简称 ': company.get('alias', ''),            '公司法人': company.get('legalPersonName', ''),            '公司成立时间': company.get('estiblishTime', '')[:10],            '公司注册地址': company.get('regLocation', ''),            '公司所在省份': company.get('base', ''),            '公司所在市': company.get('city', ''),            '公司所在区': company.get('district', ''),            '公司经营状态': company.get('regStatus', ''),            '公司地址经纬度坐标': (company.get('latitude', ''), company.get('longitude', '')),            '公司邮箱列表': company.get('emails', '').split(';')[0].replace('\t', ''),            '公司联系方式列表': company.get('phoneList', ''),            '公司联系方式': company.get('phoneNum', ''),            '公司经营范围': company.get('businessScope', ''),            '公司类型': company.get('companyOrgType', '').replace('\t', ''),            '公司质量分数': company.get('orginalScore', ''),            '公司注册资本': company.get('regCapital', ''),            '公司统一社会信用代码': company.get('creditCode', ''),            '公司纳税号': company.get('taxCode', '') or company.get('creditCode', ''),            '公司注册号': company.get('regNumber', ''),            '公司组织机构代码': company.get('orgNumber', ''),            '公司标签列表': company.get('labelListV2', ''),            '公司行业分类': company.get('categoryStr', ''),            '公司融资轮次': brand_and_agency.get('round', ''),            '公司竟品信息': brand_and_agency.get('jingpinName', ''),            '公司logo': brand_and_agency.get('logo', '') or detail.get('logo', ''),            '公司简介': brand_and_agency.get('intro', '') or detail.get('baseInfo', ''),            '公司英文名': detail.get('property3', '') or detail.get('nameEn', ''),            '公司注册机构': detail.get('regInstitute', ''),            '公司网站地址集': detail.get('websiteList', ''),            '公司实缴资本': detail.get('actualCapital', ''),            '公司曾用名': detail.get('historyNames', ''),            '公司员工人数': detail.get('socialStaffNum', '') or detail.get('staffNum', ''),            '公司纳税地址': detail.get('taxAddress', '') or detail.get('regLocation', ''),            '公司纳税银行': detail.get('taxBankName', ''),             '公司涉足领域标签': detail.get('portray', ''),         }

然后写个简单的GUI界面显示这些信息就行了:

大功告成,完整源代码详见相关文件咯~

效果展示

首先pip安装pikachupytools模块:

pip install pikachupytools --upgrade

然后简单写几行代码就能调用运行了:

from pytools import pytools
tool_client = pytools.pytools()tool_client.execute('tianyancha')

效果如下:

以下视频来源于
Charles的皮卡丘

更多


想加入微信公众号交流群的,后台回复“交流群”即可。






代码下载


https://github.com/CharlesPikachu/pytools

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
python爬虫 基于requests模块发起ajax的get请求实现解析
Python学习教程:Python的cors跨域模块主要做了什么?
吐血总结,Python Requests库使用指南
爬虫Requests库是什么,怎么用?
python爬虫04 | 长江后浪推前浪,Reuqests库把urllib库拍在沙滩上
Python requests库用法实例详解
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服