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 爬虫获取企查查公开的企业信息,并记录到数据库相关推荐

  1. Python爬虫获取企查查公开的企业信息

    1.参考博文 https://blog.csdn.net/qq_39295735/article/details/84504848?utm_medium=distribute.pc_relevant. ...

  2. python爬虫从企查查获取企业信息-手工绕开企查查的登录验证

    想要从企查查爬取企业信息,如果没有登录直接检索,邮箱.电话都被隐藏了: 上面的图片是之前截的图,今天再次检索,好像又可见了: 不过单击查看详情时,还是会被隐藏: 不管怎么说,只要企查查想限制登录,总会 ...

  3. Python:使用爬虫获取世界大学学术排名存储到 Excel 并作可视化输出

    文章目录 问题描述 问题分析 结果展示 代码实现 解法一:BeautifulSoup 解析 HTML 解法二:XPath 解析 HTML 问题描述 从 http://www.zuihaodaxue.c ...

  4. Python3爬取企查查网站的企业年表并存入MySQL

    Python3爬取企查查网站的企业年表并存入MySQL 本篇博客的主要内容:爬取企查查网站的企业年报数据,存到mysql中,为了方便记录,分成两个模块来写: 第一个模块是爬取数据+解析数据,并将数据存 ...

  5. python编程-----利用爬虫获取自如房间信息(三)

    在上次我们已经成功实现了图像识别,接下来只需要获得房间价格是怎么从图片中产生的就可以了. 在列表中查找无果后,我点开了房屋详情,并发现了如下的信息. 我发现在这里,由js发起的ajax 请求设置了图片 ...

  6. 【Python网络爬虫】企查查高级搜索及批量查询接口爬虫

    写在前面: 本文所介绍的企查查爬虫代码需要用到cookie,且cookie所对应的账号需要为vip或以上等级具有高级搜索和批量查询的功能,无此功能的账号暂不支持: 本文所介绍的是在其他人分析了前端he ...

  7. python豆瓣mysql_python爬虫获取豆瓣电影——Python操作MySQL存储数据

    30 May 2015 爬虫抓到的数据需要存储到MySQL中,所以我们需要熟悉下使用Python操作MySQL数据库.首先你的机器上要安装MySQLdb,MySQLdb是用于Python连接Mysql ...

  8. 手把手教你利用Python网络爬虫获取链家网的房产信息

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 夜阑卧听风吹雨,铁马冰河入梦来. ...

  9. python链家网爬虫_手把手教你利用Python网络爬虫获取链家网的房产信息

    点击上方" Python爬虫与数据挖掘 ",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 夜阑卧听风吹雨,铁马冰河入梦来 ...

最新文章

  1. webpack v3 结合 react-router v4 做 dynamic import — 按需加载(懒加载)
  2. TypeScript void 和 undefined 的区别
  3. 转——C# DataGridView控件 动态添加新行
  4. 我们边吃曲奇边聊——Cookie与Session那些事
  5. UVA 10891 SUM游戏 DP
  6. python编辑七段数码管引脚图_初识原理图
  7. windows server 2003 32位支持8G内存
  8. 使用装机软件后,删除开机启动项的方法
  9. OSS文件存储方案-阿里云
  10. 目前微型计算机硬件主要采用,目前使用的微型计算机硬件主要采用的电子器件是()。 A. 真空管 B. 晶体管 C. 大规模和超大规模集成电路...
  11. 中科院信工所经验_信工所六室面试经历
  12. 海归学子创新创业座谈会:龙凡教授向浙江省委书记车俊汇报 Conflux 研发进展...
  13. 工控主板定制ARM9选择思路
  14. JS实现鼠标中心放大图片功能原理及实例演示
  15. FFT运算的加深理解——FFT的增益
  16. 学习python必逛的几个网站,没看过别说你想学好python
  17. nlp算法工程师英语
  18. 《Ext JS 6.2实战》节选——迁移管理模版
  19. 实验08 软件设计模式及应用
  20. java里什么是三目表达式_浅谈Java三目运算

热门文章

  1. vue使用外部字体文件
  2. (三)计算机视觉 --SIFT特征匹配、地理标记图像匹配及RANSAC图像拼接
  3. 深入理解Linux进程调度(0.4)
  4. 学习博客:关键字package包的使用
  5. springboot yml文件不是绿叶子问题
  6. 硬件:那些安装8G、16G以及32G内存电脑的区别介绍
  7. 分部积分法的快速运算 表格法
  8. linux查看exif软件,EXIF信息查看器使用教程及功能解析
  9. Redis底层 知识(校招、社招必看)
  10. Vivado HLS #pragma 学习笔记(一)