近期收到上头新的需求,又是企业数据,公司电话地址这些,so我又来了

需求:

根据已知企业名称,爬取相应的企业名称、企业状态、法人代表、注册资本、成立日期、联系方式、地址

知识点涉及:

1、requests + bs4的登录爬虫实战

2、openpyxl 对excel操作练习

看出来没?不登录爬取不到手机号,所以下面的爬虫是在已登录情况下实现(很简单,保存登录后的cookie)

===============================================================================================

单账号 插曲:我的号在爬取到2500条数据后被封了QAQ,此处给各位分享一波,经过测试每条爬取间隔设置3,-5秒,100条左右会出现滑动验证码需要手动进入浏览器账号内解决,不然程序就卡了,后我把时间调为3-8秒,稳定运行至2500条数据封账号(非永久封,但具体解封时间没算过)

所以爬企查查建议堆个cookie池,几十个账号轮换可以适当减少延时,不叨叨了,该上原码了

# -*- coding: UTF-8 -*-
import random
import time
import re
import requests
from bs4 import BeautifulSoup
from urllib import parse
# 证书忽略
import urllib3
urllib3.disable_warnings()
from openpyxl import load_workbookCOOKIE = ["",
]USER_AGENT = ['Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36','',
]class Spider(object):def __init__(self,key):key = parse.quote(key)self.url = "https://www.qcc.com/search?key={}".format(key)self.headers = {'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3','accept-encoding': 'gzip, deflate, br','accept-language': 'zh-CN,zh;q=0.9,en;q=0.8','cache-control': 'max-age=0','referer':'https://www.qcc.com/search?key={}'.format(key),  # 插入的为url编码的公司名称'sec-fetch-mode': 'navigate','sec-fetch-site': 'none','sec-fetch-user': '?1','upgrade-insecure-requests': '1','cookie': COOKIE[random.randint(0, 1)],  # 数量根据你们存的cookie量定'user-agent': USER_AGENT[random.randint(0, 1)],  # 数量根据你们存的useranget定}passdef run(self):response = requests.get(self.url, headers=self.headers, verify=False)html = response.text# print(html)bs = BeautifulSoup(html, "lxml")tr_list = bs.find_all('tr')if len(tr_list) != 0:data_list = []for tr in tr_list:# print(tr)item = {}p = tr.find_all('p')span = tr.find_all('span', attrs={'class': 'm-l'})# 公司名title = tr.find('a', attrs={'class': 'ma_h1'}).get_text()title = ''.join(title)print(title)# print(type(title))item['name'] = titletry:# 状态state = tr.find('span', attrs={'class': 'nstatus text-success-lt m-l-xs'}).get_text()state = ''.join(state)print(state)item['state'] = stateexcept Exception as e:item['state'] = ''# # 法定代表人try:author = tr.find('a', attrs={'class': 'text-primary'}).get_text()author = ''.join(author)print(author)# print type(author)item['people'] = authorexcept Exception as e:author = str(p[0])aaa = re.findall('法定代表人:(.*?)<span', author.replace(' ', ''), re.DOTALL)author = aaa[0].strip()item['people'] = author# # 注册资本money = tr.find('span', attrs={'class': 'm-l'}).get_text()money = ''.join(money)print(money)# print type(money)item['money'] = money# 成立日期date = span[1].get_text()date = ''.join(date)print(date)# print type(date)item['time'] = date# 邮箱电话email = p[1].get_text()email = ''.join(email)email = re.sub(r'n', '', email).strip().replace(' ', '')num = re.findall('电话:.*', email, re.DOTALL)num = num[0].strip()print(num)# print type(num)item['phone'] = ''.join(num)# 地址site = p[2].get_text()site = re.sub(r'n', '', site).strip()print(site)# print type(site)item['add'] = sitedata_list.append(item)breakreturn data_listif __name__ == '__main__':# 打开文件wb = load_workbook(r'E:\python3\Job_Spider\QCC_TYC_Spider\datas_new.xlsx')  # 此处修改为你们需要爬取的公司excelws = wb.activedatas = ws['F1913':'F{}'.format(ws.max_row)]  # 按行读取excel单列信息aqsj_list = []a = 1913  # 改值控制爬取数据在新excel里的存储位置for cell in datas:for data in cell:print(a)keyword = data.valuespider = Spider(keyword)data_list = spider.run()if data_list:# aqsj_list.append(keyword)# print(data_list)name = data_list[0]['name']state = data_list[0]['state']people = data_list[0]['people']money = data_list[0]['money']timea = data_list[0]['time']phone = data_list[0]['phone']add = data_list[0]['add']wb = load_workbook(r'E:\python3\Job_Spider\QCC_TYC_Spider\cont.xlsx')  # 打开另存的excelws = wb.active# 直接根据位置进行赋值ws['A%s'% a] = namews['B%s'% a] = statews['C%s'% a] = peoplews['D%s'% a] = moneyws['E%s'% a] = timeaws['F%s'% a] = phonews['G%s'% a] = add# 保存文件wb.save(r'E:\python3\Job_Spider\QCC_TYC_Spider\cont.xlsx')# breaka+=1time.sleep(random.randint(3,8))

代码拉下来需要修改的地方有  COOKIE(换成你们自己的cookie)  ,USER_AGENT(多加几个总是好的,省的人家以为你一台电脑好几个人用),还有尾部打开的第一个文件为需要爬取的企业excel(可以自己手动创建一个.xlsx,代码内格式为一行一个公司名), 第二个打开的文件为爬取后的数据存储(需要新建一个.xlsx),最后a = 1913(意为存储在文件二的A1913),F1913(读取文件一的F1913格数据)

好了我该下班了~~~

二战企*查*查-企业-数-据爬虫相关推荐

  1. 最新2018我破解了天某查 企某查 启某宝 企某猫和全国源站工商企业大数据爬虫系统

    Python爬虫-2018年-我破解天某查和启某宝企业数据爬虫--破解反爬技术那些事情 最近在自己用python+mongdb写了一套分布式多线程的天某查爬虫系统,实现了对天某查整个网站的全部数据各种 ...

  2. 《2022中国企业数智化转型升级服务全景图/产业图谱2.0版》重磅发布

    数据猿出品 本次"数据猿年度金猿策划活动--<2022中国企业数智化转型升级服务全景图/产业图谱2.0版>"为2022年度图谱版本的升级更新版,本年度内还将再次迭代推出 ...

  3. 发票专用驱动sjz_“数智企业财税云领”增值税专用发票主题交流会圆满举办| 从专票电子化开始 开启企业数智化之旅...

    2020年11月12日,由用友公司主办的"数智企业·财税云领--YonSuite助力成长型企业专票电子化变革"主题交流会在大连奥利加尔大酒店成功举办.用友高级咨询专家.用友战略合作 ...

  4. 阿里云峰会 | 深化城市计算场景能力,为企业数智化建设提供助推力

    在2020阿里云峰会上,阿里云边缘计算技术负责人杨敬宇表示:边缘计算将成为企业数智化进程中重要助推力,而构建城市计算是阿里云边缘计算的核心方向.在会上,杨敬宇还首次公开了智慧高速.云游戏.驾驶辅助等基 ...

  5. 中台“不火”了,企业数智转型如何破圈?

    作者 | 孙溥茜 头图 | CSDN 下载自视觉中国 出品 | CSDN(ID:CSDNnews) 随着数字网络的发展,社会生产力大幅提高,催生出大量新生业态,社会全面步入工业4.0时代.传统企业在全 ...

  6. 企业数智化升级的四个“拦路虎”

    ""2021年终大型金猿主题策划活动"已正式开启,欢迎报名参与:榜单奖项+产业图谱+行业报告+线下论坛|或点击文末"阅读原文"链接后提交活动意向报名表 ...

  7. 《2021中国企业数智化转型升级发展研究报告》正式发布丨数据猿上海大数据联盟...

    "[报告下载]后台回复关键词"2021数智化报告"可免费下载50页完整高清版<2021中国企业数智化转型升级发展研究报告> 数据智能产业创新服务媒体 --聚焦 ...

  8. 薪火相传 点亮企业数智化舞台—— CDEC2021中国数字智能生态大会西安收官

    从3月开始,这场席卷全国的数字化产业的盛会从北京出发,一路行走大江南北,为多个区域搭建厂商对接平台.赋能发展数字经济,共建数智时代新生态.今天,大会来到西北重镇,在现代科技与历史文明的十字路口--西安 ...

  9. 预告|2022 星策 Summit 企业数智化转型论坛议程公布!

    Start Together, Star Together ,一起开始,一起闪耀!由星策开源社区主办.思否社区协办的首届" 星策Summit " 即将来袭!本次大会面向企业管理层. ...

最新文章

  1. js中使用进行字符串传参
  2. 手工画设计模式的类图
  3. 选数(洛谷P1036题题解,Java语言描述)
  4. iPhone 14进入代工试产阶段:首款打孔屏iPhone要来了
  5. [XJOI]noip44 T3还有这种操作
  6. v8的垃圾回收机制(二)
  7. 关于区块链的解读和简单Python实现
  8. Linux使文件变成二进制,linux 二进制文件显示方法
  9. matlab 元胞数组
  10. PIC16F887 单片机 接线 实物器件说明 原理
  11. 机器学习提高准确率的一些思路和技巧
  12. 使用LaTeX表示数学方程(附源码)
  13. 地理信息系统专业考研 GIS专业考研 名词解释大全[转]
  14. 信息技术学考 这题不会做!!
  15. 黄金矿工两百行基于Easyx
  16. 转来的,我每次看都有收获
  17. NO.001-2018.02.06《木兰花·拟古决绝词柬友》清代:纳兰性德
  18. fcpx如何用光流法_5分钟掌握FCPX所有剪辑技巧
  19. Flutter Layout之创建自适应应用程序
  20. 试用期工作总结(官方版)

热门文章

  1. python 将图片中的颜色进行替换
  2. 提个醒。阿里内网最新发布“M8”级Java面试笔记,助力金三银四
  3. python如何求每一行的均值_计算每X行数的平均值
  4. 图片水印怎么加?图片加水印方法分享
  5. 华为matex鸿蒙,华为MateX推迟至9月,或预装鸿蒙系统,价格是唯一败笔
  6. 腾讯云IM REST API V4接口统一请求方法 PHP
  7. svg --- 可缩放矢量图形
  8. 混合IP-SDN环境的仿真实验
  9. 什么是等保三级?等保三级的认证流程有哪些?
  10. Linux shell:sh csh tcsh ash bash dash zsh