目录

1.任务需求

输入

输出

2.解决办法

3.运行结果

4.特殊情况

4.1 公司统一社会代码为0?

4.2 搜索次数过多,会弹出验证码或者登陆界面?

4.3 安装selenium包,提示没有find_element_by_id用法?


1.任务需求

输入

给定一个公司企业的列表,用excel存放,如下图所示:

输出

通过企查查(或者天眼查等)获取企业的18位统一社会代码,最终存放在excel中,如下所示:

2.解决办法

使用python中的web自动化测试包selenium可以解决。

代码如下:

import openpyxl
from time import sleep#获取查询名单
list_name = []
path = r'C:\Users\Aiken\Desktop\data.xlsx'
wb = openpyxl.load_workbook(path)
wb_sheet = wb['Sheet2']
maxrows = wb_sheet.max_row
for i in range(maxrows-1):name = wb_sheet.cell(i+2,1).valuelist_name.append(name)from selenium import webdriver
# #进入企查查
driver = webdriver.Chrome()
url = 'https://www.qcc.com/?utm_source=baidu1&utm_medium=cpc&utm_term=pzsy'
driver.get(url)
driver.refresh()sleep(15)
cnt = 0
for j in list_name:cnt += 1# 如果发生需要验证码或者登陆的情况,可以用if判断在上一次中断的地方继续# if(cnt >= 353) :# sleep(1)driver.find_element_by_id('searchKey').clear() #定位到搜索框driver.find_element_by_id('searchKey').send_keys(j) #在搜索框中输入查询企业名单try:driver.find_element_by_xpath('/html/body/div[1]/div[2]/section[1]/div/div/div/div[1]/div/div/span/button').click()except:driver.find_element_by_xpath('/html/body/div[1]/div[1]/div/div/div/div/div/div/span/button').click()try:name_id = driver.find_element_by_xpath('/html/body/div[1]/div[2]/div[2]/div[3]/div/div[2]/div/table/tr[1]/td[3]/div/div[4]/div[1]/span[4]/span/div/span[1]').textexcept:name_id = "0000"print(cnt, j, name_id)wb_sheet.cell(list_name.index(j)+2,2,value = name_id)wb.save(path)
wb.close()
driver.close()

3.运行结果

终端会输出相关信息,同时如果不报错的话,会直接写入到excel中。

4.特殊情况

4.1 公司统一社会代码为0?

部分公司数据可能为0,这是因为有的公司的企查查信息布局不一样,导致使用html语法定位时候没找到数据。如果数据量少,可以直接手动修改。如果数据量多,可以修改代码。

4.2 搜索次数过多,会弹出验证码或者登陆界面?

可以设置好睡眠时间sleep(10),手动扫码登陆,然后通过断点的方式继续输出,然后把输出的数据放到txt中,再转化一下就行。 (更好的办法肯定是解决反爬虫机制!)

4.3 安装selenium包,提示没有find_element_by_id用法?

这是因为高版本的selenium更改了语法方式。可以把selenium版本更改为3.3.1(亲测可行)

【python】批量获取企业公司的统一社会代码相关推荐

  1. 如何批量获取企业工商信息?

    java,python,PHP如何采集企业工商信息,销售团队如何批量获取企业工商信息,包括:营业执照信息.主要人员信息.股东及出资信息.变更信息.股权出质等级信息.企业经营异常信息.分支机构信息等 打 ...

  2. 【ArcGIS遇上Python】python批量获取栅格数据四至(top,bottom,left,right)坐标代码

    上图所示为ArcGIS自带的影像数据,存放路径为C:\Program Files (x86)\ArcGIS\Desktop10.6\ArcGlobeData\wsiearth.tif",在源 ...

  3. python经纬度获取县名_利用 Python 批量获取县镇运输距离

    起因 最近做规划项目,领导让查出某几个市的所有乡镇级行政区域,距离所在县级行政中心的交通运输距离.想着也不是啥难事儿,高德地图一搜就有. 当我把各市行政区划统计完,发现一共有五百多个乡镇,意味着要在地 ...

  4. 极速系列04—python批量获取word/PDF/网页中的表格

    这里写目录标题 1 python批量获取word中的表格 目的: 1.1 简介 1.2 读取word文档内容 方法一 方法二 2 python批量获取PDF中的表格 目的: 2.1 简介 2.2 读取 ...

  5. 用python批量获取cad中线段点组成的凸包 + 面积

    用python批量获取cad中线段点组成的凸包 + 面积 效率实在太低,还是用c# 吧 import win32com.client import pythoncom import tubao imp ...

  6. 利用python批量查询企业信息_python实现批量获取指定文件夹下的所有文件的厂商信息...

    本文实例讲述了python实现批量获取指定文件夹下的所有文件的厂商信息的方法.分享给大家供大家参考.具体如下: 功能代码如下: import os, string, shutil,re import ...

  7. Python 批量获取今日头条街拍美图

    大家好,在以前的文章中我们学了Ajax数据获取,这篇文章我们以今日头条为例,通过分析Ajax请求来抓取今日头条的街拍美图,并将图片下载到本地保存下来. 准备好没,我们现在开始!喜欢记得收藏.点赞.关注 ...

  8. python_selenium项目_批量获取企业信用代码

    文章目录 PART1 前言 PART2 正文 一. 获取查询名单 [代码] [代码说明] 二.进入企查查开始查询 [代码] [代码说明] 三.存储数据并结束语句 [代码] [代码说明] PART3 结 ...

  9. Python批量获取基金季报

    大家好,我是小一 最近研究基金的时候,突然对今年来收益最高的基金有点好奇,于是去翻了翻该基金的业绩报告. 好家伙,今年来收益接近30%了,这还是最近一段时间回调了,如果在9月初那会,净值最高冲到了2. ...

最新文章

  1. 网管日志-06.08.14
  2. Java集合篇:HashMap原理详解(JDK1.7及之前的版本)
  3. Java中 List、Set、Map遍历方式以及性能比较
  4. 系统学习 Java IO (六)----管道流 PipedInputStream/PipedOutputStream
  5. ambiguous package name 'libglib2.0-0' with more than one installed instance
  6. python项目开发实例-有趣的十个Python实战项目,让你瞬间爱上Python!
  7. 重启framework命令及framework.jar引用
  8. 学习Java心得体会
  9. 雨林木风工具箱 3.5
  10. python入门学习—字典(FishC)
  11. 如何加载和保存AutoCAD DXF文件(七参数法)
  12. php导航自助收录源码,最近网上流行的导航网秒收录网站php源码
  13. 微信运动怎么打开?如何查看微信运动步数?原来是这样做的…
  14. QEMU中TCG翻译流程
  15. 为什么你的网速一直快不起来?
  16. 【linux服务器】使用csdn云主机的体验与问题
  17. Android Room之数据库加密
  18. iOS设计:绘图及性能
  19. android 后退键
  20. 2008-2010:中国医疗器械公司规模排名前20名

热门文章

  1. 在苹果 M1 上运行 Linux 虚拟机变得容易了
  2. final变量要么定义时初始化,要么在代码块中初始化
  3. 网页缩放,页面展示比例不变
  4. 前端入门学习阶段(3)
  5. Python爬虫之Scrapy框架系列(18)——深入剖析中间件及实战使用
  6. 【渝粤题库】广东开放大学 计算机应用基础(专科) 形成性考核
  7. 如何获得当前所在的DLL模块名称
  8. 基于Open vSwitch的传统限速和SDN限速--实验
  9. 基于分数阶傅里叶变换的车载多用户雷达通信一体化系统
  10. 68 ping: Lacking privilege for raw socket.