中间很长一段时间,由于各种原因,没有时间继续学习Python。

最近为了捡起Python,我开始不断锻炼自己的爬虫技术——爬取各种网页信息。

一直苦恼于网页登录时各种验证码的处理,感觉无从下手,可能是因为自己太过业余吧,哈哈……

对于审计人员来说,工作中需要经常查询企业信息,为了方便快捷地获取我们想要的企业信息,我一直在思考如何用Python去爬取各大企业信息查询网站。

其实,这个爬虫有很多大佬已经研究出来了,可能也算不上什么高大上的操作技能,而且有一些企业信息查询网站也支持批量查询,但是我还是想利用自己的业余时间把这个爬虫亲自写出来。

当然,也遇到了诸多问题。比如,爬取天眼查网站登录时的滑动验证码。

最终在本猴的不断研究与琢磨中,这个问题被解决了。

解决方案:

    基于cookie绕过验证码自动登录

首先使用selenium手动登录一下,然后获取cookie值保存到本地,之后再登陆的时候直接调用本地cookie就可以了。这样就可以完美地绕过验证码自动登录!

获取cookie的过程就不在这赘述了,小编从来只关心结果。

下面以天眼查为例,开始我们的操作。

把我们需要查询企业的全称依次写入excel模板的A列,见下图:

然后运行以下代码:

from selenium import webdriverfrom time import sleepimport jsonfrom lxml import etreefrom openpyxl import workbookfrom openpyxl import load_workbook#填写webdriver的保存目录driver = webdriver.Chrome()driver.maximize_window()#记得写完整的url 包括http和httpsdriver.get('https://www.tianyancha.com/search?')#首先清除由于浏览器打开已有的cookiesdriver.delete_all_cookies()with open('cookies.txt','r') as cookief:    #使用json读取cookies 注意读取的是文件 所以用load而不是loads    cookieslist = json.load(cookief)    # 方法1 将expiry类型变为int    for cookie in cookieslist:        #并不是所有cookie都含有expiry 所以要用dict的get方法来获取        if isinstance(cookie.get('expiry'), float):            cookie['expiry'] = int(cookie['expiry'])        driver.add_cookie(cookie)#刷新页面driver.refresh()#打开excelwb=load_workbook('数据.xlsx')ws=wb['Sheet1']for i in range(2,ws.max_row+1):  driver.find_element_by_id("header-company-search").clear()  driver.find_element_by_id("header-company-search").send_keys(ws.cell(i,1).value)  driver.find_element_by_xpath('//div[@]').click()  sleep(1)  driver.find_element_by_xpath('//a[@tyc-event-ch="CompanySearch.Company"]').click()  sleep(1)  driver.switch_to_window(driver.window_handles[1])  source=driver.page_source  html=etree.HTML(source)  name=html.xpath('//h1[@]')  zczb=html.xpath('//td[@]/div')  sjzb=html.xpath('//td[@width=""]')  zcdz=html.xpath('//div[@style="max-height:16px;"]/div')  jyfw=html.xpath('//td[@colspan="4"]/span')  #写入excel  ws.cell(i,2).value=zczb[0].text  ws.cell(i,3).value=sjzb[0].text  ws.cell(i,4).value=zczb[1].text  ws.cell(i,5).value=sjzb[1].text    ws.cell(i,6).value=zcdz[0].text  ws.cell(i,7).value=jyfw[0].text  driver.close()  driver.switch_to_window(driver.window_handles[0])  sleep(1)#保存excelwb.save('数据.xlsx')

运行如下:

计算机全自动操作网页

酷不酷?

运行结束,打开excel模板,最终结果如下:

这样我们就可以很轻松地获取到企业信息,如果想要获取企业其他信息,可以通过修改代码来实现,前提是要有一定的编程基础。

其实刚才爬取的信息即使不用登录也一样可以获取到,但是有些信息必须登陆之后才可以获取,所以小编还是利用一定的技术实现登录之后再来爬取相关信息。

喜欢小编的文章或者想更多了解小编的话

可以扫一扫关注小编的个人公众号

(关注即领取Python全套视频教程)

小编微信

angularjs 获取复选框的值_如何利用Python批量获取天眼查企业信息?相关推荐

  1. el如何获取复选框的值_element ui 表格提交时获取所有选中的checkbox的数据

    设定此属性@selection-change="changeFun",意思是每次勾选的时候都会触发这个事件 //复选框状态改变 changeFun(val) { this.mult ...

  2. angularjs 获取复选框的值_基于uFUN开发板的心率计(一)DMA方式获取传感器数据

    前言 从3月8号收到板子,到今天算起来,uFUN到手也有两周的时间了,最近利用下班后的时间,做了个心率计,从单片机程序到上位机开发,到现在为止完成的差不多了,实现很简单,uFUN开发板外加一个Puls ...

  3. angularjs 获取复选框的值_哈迪斯仙酒有什么用 哈迪斯仙酒获取方式以及作用一览...

    哈迪斯仙酒有什么用?仙酒如何获得?许多小伙伴不知道还仙酒的用处,下面小编给大家带来哈迪斯杀出地狱仙酒获得途径及用处介绍,一起来看看吧. 哈迪斯仙酒有什么用 哈迪斯仙酒获取方式以及作用一览 仙酒获得途径 ...

  4. angularjs 获取复选框的值_侠客行第二季来袭,教你如何快速获取侠名值_DNF游戏新闻 - 地下城与勇士 - DNF...

    导读侠客行这个活动相信大家都不陌生,前不久第一季侠客行刚刚结束,经过短暂的调整,第二季侠客行再次上线,这次侠客行的奖励和第一季相比还是有所差异的,虽然没有天空可以兑换,但是其他奖励也是不错的,下面就来 ...

  5. angularjs 获取复选框的值_加快周期进度,DNF疲劳药获取指南

    本文来源:DNF助手,作者:月主 新版本之前的疲劳药需求主要是为了刷深渊出想要史诗套或者武器,而如今版本下的对更多疲劳值的需求原因更加多元化了,虽然最终目的也是为了史诗,但不会如同此前那般需要考验欧非 ...

  6. angularjs 获取复选框的值_利用胚子冲刺增幅 红字胚子获取途径都在这_DNF经验心得 - 地下城与勇士 - DNF...

    游久DNF国庆口令码:U9DNF922 ,日开放兑换,15天黑钻.疲劳药.时间引导石.一次性继承装置.华丽的徽章神秘礼盒随机领取!复制口令码:U9DNF922 戳这里兑换>> 最近游戏中开 ...

  7. angularjs 获取复选框的值_《天涯明月刀手游》银两怎么获得 银两快速获取途径一览...

    导读 天涯明月刀手游银子的获取方法有哪些,很多玩家都不知道,那么大家入手途径是什么,还不知道的玩家一起来看看吧. 新游天涯明月刀刚上线两天,但是也就这两天对新游天刀口碑褒贬不一,我也不是很懂普通玩家在 ...

  8. angularjs 获取复选框的值_昏暗环境下,不要调高ISO感光值_摄影教程_影楼摄影

    摄影教程 因为数码相机的ISO感光值可调节,所以很多朋友在光线不足或低光的环境下,为了照片获取更多的亮度,总爱把ISO感光值调的很高.其实除了在一些特殊场合,没办法的情况下,才考虑适当调高下ISO感光 ...

  9. layui获取复选框的值

    layui获取复选框的值 //HTML代码 <form class="layui-form">     <div class="layui-form-i ...

  10. JQ对复选框全选、获取复选框的值、回选

    1.全选.全不选: function checkAllFun(a){if (a.checked){$("input[name='checkbox']:checkbox").each ...

最新文章

  1. 【荐】CSS多级导航菜单
  2. 2.羽翼sqlmap学习笔记之MySQL注入
  3. 【机器学习基础】一文详尽之支持向量机(SVM)算法!
  4. jdbc map获取keys_跟我学shardingjdbc之分布式主键及其自定义
  5. navicat for mysql 数据库备份与还原
  6. MyFlash——美团点评的开源MySQL闪回工具
  7. linux vim复制粘贴删除,Linux vim删除、复制、粘贴快捷键
  8. python batch normalization_Batch Normalization 详解
  9. 一步一步重写 CodeIgniter 框架 (2) —— 实现简单的路由功能
  10. 2019牛客多校第一场I Points Division(DP)题解
  11. Ops.CI/CD-持续交付概要笔记
  12. Python游戏开发入门3 Pygame屏幕绘制机制
  13. Linux 下rzsz最新安装方法
  14. 重温LuGre摩擦力模型
  15. Thread.MemoryBarrier 方法
  16. NAT 内网穿透原理
  17. Implementing Infinite Scroll Into a React Component
  18. 中职计算机教学工作随笔,教学随笔(精选15篇)
  19. python工程师怎么考-【一个合格的Python工程师需要达到怎样的编程水平】
  20. iOS HTTPS证书不受信任解决办法

热门文章

  1. Java毕设项目博雅楼自习室预约系统计算机(附源码+系统+数据库+LW)
  2. 系统优化的基本思想点
  3. linux格式化硬盘怎么那么慢,linux系统中怎么格式化硬盘
  4. 动态主题模型(Dynamic Topic Models, DTM)
  5. 【WEB服务器】什么是WEB服务器
  6. c语言中四种简单的数组排序
  7. linux系统sip1 login,1.1.1.1 SIP终端节点配置
  8. 【NLP】华为发布「国产Copilot内核」PanGu-Coder,而且真的能用中文哦!
  9. mysql fprintf_matlab中fprintf函数的用法详解
  10. 局域网内两台电脑设置共享文件夹并访问