angularjs 获取复选框的值_如何利用Python批量获取天眼查企业信息?
中间很长一段时间,由于各种原因,没有时间继续学习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批量获取天眼查企业信息?相关推荐
- el如何获取复选框的值_element ui 表格提交时获取所有选中的checkbox的数据
设定此属性@selection-change="changeFun",意思是每次勾选的时候都会触发这个事件 //复选框状态改变 changeFun(val) { this.mult ...
- angularjs 获取复选框的值_基于uFUN开发板的心率计(一)DMA方式获取传感器数据
前言 从3月8号收到板子,到今天算起来,uFUN到手也有两周的时间了,最近利用下班后的时间,做了个心率计,从单片机程序到上位机开发,到现在为止完成的差不多了,实现很简单,uFUN开发板外加一个Puls ...
- angularjs 获取复选框的值_哈迪斯仙酒有什么用 哈迪斯仙酒获取方式以及作用一览...
哈迪斯仙酒有什么用?仙酒如何获得?许多小伙伴不知道还仙酒的用处,下面小编给大家带来哈迪斯杀出地狱仙酒获得途径及用处介绍,一起来看看吧. 哈迪斯仙酒有什么用 哈迪斯仙酒获取方式以及作用一览 仙酒获得途径 ...
- angularjs 获取复选框的值_侠客行第二季来袭,教你如何快速获取侠名值_DNF游戏新闻 - 地下城与勇士 - DNF...
导读侠客行这个活动相信大家都不陌生,前不久第一季侠客行刚刚结束,经过短暂的调整,第二季侠客行再次上线,这次侠客行的奖励和第一季相比还是有所差异的,虽然没有天空可以兑换,但是其他奖励也是不错的,下面就来 ...
- angularjs 获取复选框的值_加快周期进度,DNF疲劳药获取指南
本文来源:DNF助手,作者:月主 新版本之前的疲劳药需求主要是为了刷深渊出想要史诗套或者武器,而如今版本下的对更多疲劳值的需求原因更加多元化了,虽然最终目的也是为了史诗,但不会如同此前那般需要考验欧非 ...
- angularjs 获取复选框的值_利用胚子冲刺增幅 红字胚子获取途径都在这_DNF经验心得 - 地下城与勇士 - DNF...
游久DNF国庆口令码:U9DNF922 ,日开放兑换,15天黑钻.疲劳药.时间引导石.一次性继承装置.华丽的徽章神秘礼盒随机领取!复制口令码:U9DNF922 戳这里兑换>> 最近游戏中开 ...
- angularjs 获取复选框的值_《天涯明月刀手游》银两怎么获得 银两快速获取途径一览...
导读 天涯明月刀手游银子的获取方法有哪些,很多玩家都不知道,那么大家入手途径是什么,还不知道的玩家一起来看看吧. 新游天涯明月刀刚上线两天,但是也就这两天对新游天刀口碑褒贬不一,我也不是很懂普通玩家在 ...
- angularjs 获取复选框的值_昏暗环境下,不要调高ISO感光值_摄影教程_影楼摄影
摄影教程 因为数码相机的ISO感光值可调节,所以很多朋友在光线不足或低光的环境下,为了照片获取更多的亮度,总爱把ISO感光值调的很高.其实除了在一些特殊场合,没办法的情况下,才考虑适当调高下ISO感光 ...
- layui获取复选框的值
layui获取复选框的值 //HTML代码 <form class="layui-form"> <div class="layui-form-i ...
- JQ对复选框全选、获取复选框的值、回选
1.全选.全不选: function checkAllFun(a){if (a.checked){$("input[name='checkbox']:checkbox").each ...
最新文章
- 【荐】CSS多级导航菜单
- 2.羽翼sqlmap学习笔记之MySQL注入
- 【机器学习基础】一文详尽之支持向量机(SVM)算法!
- jdbc map获取keys_跟我学shardingjdbc之分布式主键及其自定义
- navicat for mysql 数据库备份与还原
- MyFlash——美团点评的开源MySQL闪回工具
- linux vim复制粘贴删除,Linux vim删除、复制、粘贴快捷键
- python batch normalization_Batch Normalization 详解
- 一步一步重写 CodeIgniter 框架 (2) —— 实现简单的路由功能
- 2019牛客多校第一场I Points Division(DP)题解
- Ops.CI/CD-持续交付概要笔记
- Python游戏开发入门3 Pygame屏幕绘制机制
- Linux 下rzsz最新安装方法
- 重温LuGre摩擦力模型
- Thread.MemoryBarrier 方法
- NAT 内网穿透原理
- Implementing Infinite Scroll Into a React Component
- 中职计算机教学工作随笔,教学随笔(精选15篇)
- python工程师怎么考-【一个合格的Python工程师需要达到怎样的编程水平】
- iOS HTTPS证书不受信任解决办法
热门文章
- Java毕设项目博雅楼自习室预约系统计算机(附源码+系统+数据库+LW)
- 系统优化的基本思想点
- linux格式化硬盘怎么那么慢,linux系统中怎么格式化硬盘
- 动态主题模型(Dynamic Topic Models, DTM)
- 【WEB服务器】什么是WEB服务器
- c语言中四种简单的数组排序
- linux系统sip1 login,1.1.1.1 SIP终端节点配置
- 【NLP】华为发布「国产Copilot内核」PanGu-Coder,而且真的能用中文哦!
- mysql fprintf_matlab中fprintf函数的用法详解
- 局域网内两台电脑设置共享文件夹并访问