gjdw爬虫总结

1.思路:python-v-3.10.4 + selenium-v-4.6.0模拟ui自动化,跳转到需要的数据的页面,通过BeautifulSoup解析html,获取gjdw的页面数据,组装json数据,使用requests调用java的接口,数据保存

切记 谷歌浏览器和谷歌驱动的版本要对齐,参考网址:https://wenku.baidu.com/view/304d25cf9a8fcc22bcd126fff705cc1755275fc5.html?_wkts_=1668498202760&bdQuery=%E8%B0%B7%E6%AD%8C%E6%B5%8F%E8%A7%88%E5%99%A8%E5%92%8C%E9%A9%B1%E5%8A%A8%E7%89%88%E6%9C%AC%E5%AF%B9%E5%BA%94
谷歌浏览器页面 输入 chrome://version/,查看浏览器的版本
107.0.5304.107 (正式版本) (64 位) (cohort: Stable Installs & Version Pins)
对应的 驱动版本
win7 及一下版本只能安装python3.8 ,python3.8 又不支持 ddddocr识别

1.1谷歌浏览器下载

谷歌官网:https://www.google.cn/chrome/

1.2谷歌驱动下载

下载地址:http://npm.taobao.org/mirrors/chromedriver/
里面的版本就是对应的浏览器版本

1.3测试验证是否成功

from splinter import Browser
browser = Browser("chrome")
browser.visit('https://baidu.com')
如果浏览器自动打开就是配置成功了。

2.过程遇到的难点以及解决:

2.1.对电脑配置要求不高,主要是网速

2.2.元素选择的困难,解决:

1.driver.find_element(By.CSS_SELECTOR, 'input[placeholder="请输入验证码"]')
2.driver.find_element(By.CSS_SELECTOR, "button[class='el-button el-button--primary']")
3.driver.find_element(By.CSS_SELECTOR,"#main > div > div:nth-child(1) > div > ul > li.lef > div.el-select > div > span > span > i").click()
4.    elements = driver.find_elements(By.CSS_SELECTOR, 'div[class="el-table__expand-icon"]')for element in elements:element.click()

2.3 明明有元素,却拿不到

设置休眠时间,让页面加载完成
time.sleep(1)
https://www.feiqueyun.cn/zixun/jishu/276326.html
gjdw电网页面 动态设置的内联样式CSS 导致直接 取 document.querySelector('') 每次取的会变,导致爬虫不稳定
解决方案:可以尝试该元素的父级元素,elements = driver.find_elements(By.CSS_SELECTOR,''),然后遍历 ,
再循环点击处理for element in elements:element.click()
这个简单 省事

2.4页面取元素,调试,保证你所取的元素是正确的

检查(F12)  在Console控制台  document.querySelector('aaa') aaa是你选中的Elements 单机右键 ---->copy---->copy selector 复制的内容
document.querySelector('aaa')  回车,如果不等于 null  说明选择的元素标签是正确的

2.5登陆验证码识别处理

将页面的验证码截图到本地,使用ddddocr的包自动识别,在这里做一个 补偿机制,识别错之后会有一次重新识别的操作,目前验证码识别错误两次,就不会再发起登陆了

2.6 调用java保存数据的便捷

python也可以直接操作数据,但是比较依赖环境,这里就直接使用java接口操作数据库,去掉对环境的依赖

3.加入日志,便于追溯

uuid_str = time.strftime("%Y-%m-%d",time.localtime())
logger = logger_config(log_path='log/'+uuid_str+'-info.log', logging_name='INFO')
logger.info("第一次登陆")

4.加入文件配置,便于管理

添加文件 xxx_config.ini
cf = configparser.ConfigParser()
cf.read('guojia_config.ini',encoding="utf-8-sig")
phone = cf.get('lequn', 'phone')
注意点:从配置文件获取的都是str类型,在判断的时候 需要转换一下 ,不能直接判断 day_count == 30
需要这样判断 day_count == '30'

某网数据crawler相关推荐

  1. 使用Python爬取分析政府采购网数据

    好久没写博客了,一直觉得之前写的都没啥技术性,这次分享个最近觉得很值得记录的一次操作吧~.         Leader临时分配给我个任务,要我爬取下政府采购网近一个月公开招标中二三甲医院的数据,这一 ...

  2. python爬虫网络数据包_Python爬虫之多线程图虫网数据爬取(十六)

    Python爬虫之多线程图虫网数据爬取(十六) 发布时间:2019-05-14 10:11, 浏览次数:289 , 标签: Python 原创不易,转载前请注明博主的链接地址:Blessy_Zhu h ...

  3. 采用8种相位,每种相位各有两种幅度的QAM调制方法,在1200Baud的信号传输速率下能达到的网数据传输速率为( )

    采用8种相位,每种相位各有两种幅度的QAM调制方法,在1200Baud的信号传输速率下能达到的网数据传输速率为( D ) A. 2400b/s B. 3600b/s C. 9600b/s D. 480 ...

  4. 使用Beautifulsoup爬取药智网数据

    使用Beautifulsoup模块爬取药智网数据 Tips:1.爬取多页时,先用一页的做测试,要不然ip容易被封 2.自己常用的处理数据的方法: reg=re.compile('正则表达式') dat ...

  5. 使用rsync完成内网数据备份

    最近在搞公司内网数据备份,在此记录下.拓扑如下: 环境描述:web服务器为lnmp环境,其中attachment目录是用户数据,大约有300G,很重要.mysql服务器每天零时备份数据库,备份的数据也 ...

  6. 采集京东网数据的10个经典方法

    京东网数据采集全网抓取网页数据.商品销量.全网搜索.网页爬虫.采集网站数据.网页数据采集软件.python爬虫.HTM网页提取.APP数据抓包.APP数据采集.一站式网站采集技术.BI数据的数据分析. ...

  7. 网络爬虫——票房网数据抓取及存储

    网络爬虫--票房网数据抓取及存储 实验内容 目标网站:电影票房网 目标网址:http://58921.com/daily/wangpiao 任务要求 目标数据:(1)名次(2)电影名称 (3)日期(4 ...

  8. 关于内外网数据同步解决方案

    目前,越来越多的企业内部或者合作企业之间要求各种业务数据能够实时同步共享,大部分重视安全性的企业会将数据存储至云端以防丢失.高需求企业一般都采用基于TCP的文件复制或同步工具的方法来实现数据同步. 传 ...

  9. MATLAB根据经纬度格网数据画地图

    worldmap([20 60],[70 140])%描绘出中国地图的轮廓 %陆地水格网数据显示 geoshow(gca,data,refvec,'DisplayType','texturemap') ...

最新文章

  1. DIKW体系(Data-Information-Knowlege-Wisdom)
  2. Linux 下 zip unzip压缩与解压
  3. 【2011.9.20】Spring配置文件总结
  4. 中国平民百姓与富翁的五大差距
  5. hadoop 部分问题
  6. 论文浅尝 | 探索将预训练语言模型用于事件抽取和事件生成
  7. export Oracle_sid =asm,单实例下oracle数据库从文件系统迁移到ASM上
  8. 怎么修改x轴_Origin绘图:共X轴Stack绘制分波态密度与绘图中的科学构思
  9. 百度将砸钱100多亿元建云计算中心(2012-09-03)
  10. DirectX 3D 设备丢失(lost device)的处理
  11. C语言强制转换与输出格式不对应问题
  12. C#中使用反射遍历一个对象属性和值以及百分数
  13. 让 Microsoft Office 下课!强烈推荐WPS2005!!
  14. oracle补丁冲突解决方法,【学习笔记】Oracle RAC升级安装patch补丁的问题和解决办法...
  15. 【算法刷题】排序:CodeForces 984A,CodeForces 1132B,CodeForces 1015C
  16. 清华上交等发表Nature子刊!分片线性神经网络最新综述!
  17. 2022年6月 青少年软件编程(图形化) 等级考试试卷(四级)
  18. 几种OSM数据下载方式的详细介绍
  19. html英文日期js,JS网页上显示中英文版日期时间(根据电脑上的时间)
  20. 用vue2写一个新闻列表页,和新闻详情页,该怎么做?

热门文章

  1. 央视播网友调侃委员周星驰:国家有任务给你了
  2. “创新”客户体验的 3 种方法
  3. 视频教程-基于HyperMesh的钢筋混凝土网格处理-其他
  4. android 10 无线 电脑模式,华为Mate 10 PC模式体验:可在电脑使用手机所有App
  5. python 梯度提升树_梯度提升方法(Gradient Boosting)算法案例
  6. Adobe全套软件工具Master Collection 2023版本的下载与安装配置教程
  7. 步进驱动和伺服驱动的区别
  8. 青少年软件编程C++一级题库(11-21)
  9. 用科技号脉 九安医疗缔造数字健康生活
  10. jvm中方法区和常量池详解_Java常量池(静态常量池与运行时常量池)