Python爬虫获取企查查公开的企业信息
1、参考博文
https://blog.csdn.net/qq_39295735/article/details/84504848?utm_medium=distribute.pc_relevant.none-task-blog-searchFromBaidu-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-searchFromBaidu-2.control
2、python代码
#!/usr/bin/python3
#-*- coding: utf-8 -*-
import urllib.request
import re
import pymysql
#记录公司信息的字典,类似C语言的结构体
#字典中的字段包括:company,domain,legal_person,address,email,phone
gCompanyInfo = dict()
#伪装爬虫成浏览器
def spider2browser():
headers=("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 SE 2.X MetaSr 1.0")
opener = urllib.request.build_opener()
opener.addheaders = [headers]
urllib.request.install_opener(opener)
#end of spider2browser
#处理企业信息的异常字符,如换行符、空格、查不到等等
def getTargetInfo(result):
if 0 == len(result):
return '暂无'
else:
info = re.sub(r'\n', "", str(result[0])) #删除换行符
info = re.sub(r'<br/>', "", info) #删除多余标签
info = re.sub(r' ', "", info) # 删除多余空格
return info
#end of getTargetInfo()
#根据公司名字获取企业详细信息
def getCompanyInfo(chinaCompany):
companyInfo = {'company':chinaCompany, 'legal_person':'暂无', 'domain':'暂无', 'address':'暂无'}
#转化为机器可以识别带中文的网址,编码类型为unicode。只转换汉字部分,不能全部网址进行转换
company=urllib.parse.quote(chinaCompany)
firstUrl="https://www.qichacha.com/search?key=" + company
#print("visit web:"+testUrl)
#获取法人代表的名字
searchRet=urllib.request.urlopen(firstUrl).read().decode("utf-8", "ignore")
matchPat='法定代表人.*?>(.*?)</a>'
bosses = re.compile(matchPat, re.S).findall(searchRet)
companyInfo['legal_person'] = getTargetInfo(bosses)
#爬取第一个页面,即搜索企业名字,获得访问企业信息的跳转链接
matchPat='addSearchIndex.*?href="(.*?)" target="_blank" class="ma_h1"'
nextUrls = re.compile(matchPat, re.S).findall(searchRet)
if 0 == len(nextUrls):
return companyInfo
nextUrl = "https://www.qichacha.com" + str(nextUrls[0])
#爬取第二个页面,获取公司官网
searchRet=urllib.request.urlopen(nextUrl).read().decode("utf-8", "ignore")
matchPat = 'data-delay="500" rel="nofollow">(.*?)</a> <a onclick'
urls=re.compile(matchPat, re.S).findall(searchRet)
companyInfo['domain'] = getTargetInfo(urls)
#获取公司地址
matchPat='title="查看地址".*?>(.*?)</a>'
addresses=re.compile(matchPat, re.S).findall(searchRet)
companyInfo['address'] =getTargetInfo(addresses)
return companyInfo
#end of getCompanyInfo()
#将公司的详细信息写入数据库
def writeInfoToDB(cursor, companyInfo):
sql = "insert into company_info(company,domain,legal_person,address) values(%s, %s, %s, %s)"
val = (companyInfo['company'], companyInfo['domain'], companyInfo['legal_person'],companyInfo['address'])
try:
cursor.execute(sql, val)
db.commit()
print("Info: 记录公司 %s 成功" % companyInfo['company'])
except Exception as err:
db.rollback()
print("Error: 记录公司 %s 失败" % companyInfo['company'])
print(err)
#end of writeInfoToDB()
#=========主流程从这里开始=========#
#从数据库中将所有的企业名单读取出来
db = pymysql.connect("139.159.xxx.xxx","数据库用户名","密码","数据库")
cursor = db.cursor()
cursor.execute("select `company` from `company_list`")
companyList = cursor.fetchall()
#伪装爬虫为浏览器
spider2browser()
#将所有公司的信息从企查查网址获取,并保存到数据库中
for row in companyList:
companyInfo = getCompanyInfo(row[0])
writeInfoToDB(cursor, companyInfo)
3、数据库结果
Python爬虫获取企查查公开的企业信息相关推荐
- 【mysql数据库】通过python 3.7 爬虫获取企查查公开的企业信息,并记录到数据库
1.爬虫的思路参考这篇博文 https://mp.csdn.net/postedit/83628587 2.数据库保存截图如下 3.python代码如下 #!/usr/bin/python3 #-*- ...
- python爬虫从企查查获取企业信息-手工绕开企查查的登录验证
想要从企查查爬取企业信息,如果没有登录直接检索,邮箱.电话都被隐藏了: 上面的图片是之前截的图,今天再次检索,好像又可见了: 不过单击查看详情时,还是会被隐藏: 不管怎么说,只要企查查想限制登录,总会 ...
- java 调用企查查API查询企业信息
效果图: 首先需要设置token,API中要求token的格式为key+Timespan+SecretKey组成的32位md5加密的大写字符串,所以我也附赠了MD5加密的工具类.token要放在htt ...
- 用Python爬虫获取百度企业信用中企业基本信息!太厉害了!
一.背景 希望根据企业名称查询其经纬度,所在的省份.城市等信息.直接将企业名称传给百度地图提供的API,得到的经纬度是非常不准确的,因此希望获取企业完整的地理位置,这样传给API后结果会更加准确.百度 ...
- Python3爬取企查查网站的企业年表并存入MySQL
Python3爬取企查查网站的企业年表并存入MySQL 本篇博客的主要内容:爬取企查查网站的企业年报数据,存到mysql中,为了方便记录,分成两个模块来写: 第一个模块是爬取数据+解析数据,并将数据存 ...
- 企查查app新增企业数据抓取
企查查每日新增企业数据抓取 尚未完成的工作: 需要自行抓包获取设备id,appid,sign等等 sign和时间戳保持一致即可 把所有的数据库.redis配置 无法自动登录,账号需要独立 redis数 ...
- 编写python爬虫 获取中华英才网全网工资数据
做数据分析 数据挖掘,第一步是获取数据,在这里,我们要分析现今全国各地各个职业的工资情况. 我们选择较为权威的'中华英才网',编写python爬虫获取该网站上的各个招聘信息说给出的工资,再取其行业工资 ...
- Python爬虫获取文章的标题及你的博客的阅读量,评论量。所有数据写入本地记事本。最后输出你的总阅读量!
Python爬虫获取文章的标题及你的博客的阅读量,评论量.所有数据写入本地记事本.最后输出你的总阅读量!还可以进行筛选输出!比如阅读量大于1000,之类的! 完整代码在最后.依据阅读数量进行降序输出! ...
- python Chrome + selenium自动化测试与python爬虫获取网页数据
一.使用Python+selenium+Chrome 报错: selenium.common.exceptions.SessionNotCreatedException: Message: sessi ...
最新文章
- 使用wkwebview后,页面返回不刷新的问题
- ssh项目放到服务器上出现404,项目运行一段时间,后台程序无法启动,404错误
- OpenCV背景扣除Background subtraction的实例(附完整代码)
- 链接分析算法系列-机器学习排序
- 前端学习(1687):前端系列javascript基础面试前言
- Expression Blend学习四控件-按钮
- 一周第三次课(10月18日)
- C# 正则表达式大全
- 台安PLC通过手机热点远程在线模拟,远程编程,远程调试
- 微分方程模型——偏微分方程
- linux下FFmpeg编译和解决nasm/yasm not found or too old错误
- 织梦列表页list标签调用支持flag属性方法
- APS Interview - Operating System
- 中等职业学校计算机类教学用书,中等职业学校计算机技术专业教学用书:二维动画制作(Flash CS3)...
- 因融资失败倒闭 五分钟倒在黎明前五分钟
- Daily Scrum Meeting 11.08
- 装了就不舍得卸载,4款电脑必装软件,功能实用又免费
- 固态硬盘和机械硬盘的区别
- 英语四级和计算机二级考试冲突吗,大学必须过英语四级吗?必须过计算机二级吗?...
- 五个最好的DVD播放器下载
热门文章
- vce数学考试能用计算机,准备VCE数学考试的诀窍,从一本出色的笔记开始!
- 使用AD中的自带的元件库问题处理
- JAVA 操作 properties 配置文件
- 解决iphone的短信中心号码设置错误的方案
- 独立IP、特产浏览量(PV)、访问次数(VV)、独立访客(UV)有什么区别?
- java 鼠标动眼睛动_java实现眼睛跟着鼠标转动的跟踪眼代码
- 万年历开源 android,简单干净的万年历
- ▽算符在球坐标系_球坐标系中的角动量算符
- 什么是m叉树_品读 | 记忆深处那些树
- 下载typora beta版本