【mysql数据库】通过python 3.7 爬虫获取企查查公开的企业信息,并记录到数据库
1、爬虫的思路参考这篇博文
https://mp.csdn.net/postedit/83628587
2、数据库保存截图如下
3、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 companyInfonextUrl = "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)
【mysql数据库】通过python 3.7 爬虫获取企查查公开的企业信息,并记录到数据库相关推荐
- Python爬虫获取企查查公开的企业信息
1.参考博文 https://blog.csdn.net/qq_39295735/article/details/84504848?utm_medium=distribute.pc_relevant. ...
- python爬虫从企查查获取企业信息-手工绕开企查查的登录验证
想要从企查查爬取企业信息,如果没有登录直接检索,邮箱.电话都被隐藏了: 上面的图片是之前截的图,今天再次检索,好像又可见了: 不过单击查看详情时,还是会被隐藏: 不管怎么说,只要企查查想限制登录,总会 ...
- Python:使用爬虫获取世界大学学术排名存储到 Excel 并作可视化输出
文章目录 问题描述 问题分析 结果展示 代码实现 解法一:BeautifulSoup 解析 HTML 解法二:XPath 解析 HTML 问题描述 从 http://www.zuihaodaxue.c ...
- Python3爬取企查查网站的企业年表并存入MySQL
Python3爬取企查查网站的企业年表并存入MySQL 本篇博客的主要内容:爬取企查查网站的企业年报数据,存到mysql中,为了方便记录,分成两个模块来写: 第一个模块是爬取数据+解析数据,并将数据存 ...
- python编程-----利用爬虫获取自如房间信息(三)
在上次我们已经成功实现了图像识别,接下来只需要获得房间价格是怎么从图片中产生的就可以了. 在列表中查找无果后,我点开了房屋详情,并发现了如下的信息. 我发现在这里,由js发起的ajax 请求设置了图片 ...
- 【Python网络爬虫】企查查高级搜索及批量查询接口爬虫
写在前面: 本文所介绍的企查查爬虫代码需要用到cookie,且cookie所对应的账号需要为vip或以上等级具有高级搜索和批量查询的功能,无此功能的账号暂不支持: 本文所介绍的是在其他人分析了前端he ...
- python豆瓣mysql_python爬虫获取豆瓣电影——Python操作MySQL存储数据
30 May 2015 爬虫抓到的数据需要存储到MySQL中,所以我们需要熟悉下使用Python操作MySQL数据库.首先你的机器上要安装MySQLdb,MySQLdb是用于Python连接Mysql ...
- 手把手教你利用Python网络爬虫获取链家网的房产信息
点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 夜阑卧听风吹雨,铁马冰河入梦来. ...
- python链家网爬虫_手把手教你利用Python网络爬虫获取链家网的房产信息
点击上方" Python爬虫与数据挖掘 ",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 夜阑卧听风吹雨,铁马冰河入梦来 ...
最新文章
- webpack v3 结合 react-router v4 做 dynamic import — 按需加载(懒加载)
- TypeScript void 和 undefined 的区别
- 转——C# DataGridView控件 动态添加新行
- 我们边吃曲奇边聊——Cookie与Session那些事
- UVA 10891 SUM游戏 DP
- python编辑七段数码管引脚图_初识原理图
- windows server 2003 32位支持8G内存
- 使用装机软件后,删除开机启动项的方法
- OSS文件存储方案-阿里云
- 目前微型计算机硬件主要采用,目前使用的微型计算机硬件主要采用的电子器件是()。 A. 真空管 B. 晶体管 C. 大规模和超大规模集成电路...
- 中科院信工所经验_信工所六室面试经历
- 海归学子创新创业座谈会:龙凡教授向浙江省委书记车俊汇报 Conflux 研发进展...
- 工控主板定制ARM9选择思路
- JS实现鼠标中心放大图片功能原理及实例演示
- FFT运算的加深理解——FFT的增益
- 学习python必逛的几个网站,没看过别说你想学好python
- nlp算法工程师英语
- 《Ext JS 6.2实战》节选——迁移管理模版
- 实验08 软件设计模式及应用
- java里什么是三目表达式_浅谈Java三目运算