盘点一个Python网络爬虫过验证码的问题(方法一)
回复“书籍”即可获赠Python从入门到进阶共10本电子书
(资料图)
今
日
鸡
汤
低眉信手续续弹,说尽心中无限事。大家好,我是皮皮。
一、前言前几天在Python最强王者群【鶏啊鶏。】问了一个Python网络爬虫的问题,这里拿出来给大家分享下。
下面是他的代码:
from selenium import webdriverfrom selenium.webdriver.common.by import Byimport timefrom PIL import Imageimport ddddocrocr = ddddocr.DdddOcr()options = webdriver.ChromeOptions()options.add_argument("user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36")options.add_argument("--disable-blink-features=AutomationControlled")driver = webdriver.Chrome(options=options)# 打开目标网页driver.get("https://sol.sinosure.com.cn")time.sleep(5)driver.maximize_window()# 定位验证码图片元素并模拟鼠标悬停以加载图片yanzhengma = driver.find_element(By.CSS_SELECTOR, ".pass-form-item.pass-form-item-code")captcha_element = yanzhengma.find_element(By.CSS_SELECTOR, ".pass-label-img")webdriver.ActionChains(driver).move_to_element(captcha_element).perform()time.sleep(5)# 获取验证码图片元素的位置和大小location = captcha_element.locationsize = captcha_element.sizeprint(location)print(size)# 截取整个网页的截图driver.save_screenshot("screenshot.png")# 根据验证码图片元素的位置和大小,从整个网页截图中裁剪出验证码图片left = int(location["x"])top = int(location["y"])right = int(location["x"] + size["width"])bottom = int(location["y"] + size["height"])captcha_screenshot = Image.open("screenshot.png").crop((left, top, right, bottom))print(left)print(top)print(location)print(bottom)# 保存裁剪后的验证码图片,并进行识别captcha_screenshot.save("captcha.png")with open("captcha.png", "rb") as f: img_bytes = f.read()res = ocr.classification(img_bytes)print("识别的验证码是:" + res)
基本思路是没啥问题的,确实也是可以拿到对应界面的截图,只不过是验证码的位置截取出现了点偏差,导致验证码没正确识别到。
下面这个代码是获取验证码图片元素的位置和大小:
location = captcha_element.locationsize = captcha_element.size
这个部分我看介绍应该是会返回定位的元素位置,我刚刚大致拖拉了一下在裁剪前的定位打印出来确实就已经去了输入密码附近的位置了 但是我定位的元素是验证码的地方,并且我也尝试了先定位验证那个位置的大元素再定位至具体的验证码图片位置 问题依旧。
上面是粉丝的疑惑,下面一起来看看解决办法。
二、实现过程这里【魏哥】尝试了下代码,但是出现下图报错:
这个报错还是蛮常见的,对于时常使用sel的人来说,这个报错算是家常便饭了,报错的原因是本地浏览器驱动和谷歌浏览器的版本不匹配,需要更换本地浏览器驱动。
关于这个问题的解决方法,就是去网页下载对应浏览器版本的对应驱动,放到本地指定文件夹,确保该文件夹路径有加入环境变量。该问题的解决办法公众号历史文章也有提及,网上的解决教程也一大堆,这里不再赘述。
言归正传,继续回到这个问题的解决办法。这里【甯同学】给了一个思路,直接找到 验证码的图片的url 用requests 请求 验证码的.content 用 ocr.classification(验证码的.content) 就可以了 不用保存图片 在open读取二进制流,代码如下所示:
顺利地解决了粉丝的问题,如果对requests和Beautiful还不熟悉的小伙伴,可能接受起来就比较困难一些。
这里只是给出了其中一个方法,另外的一个方法,一起看下一篇文章,敬请期待!
三、总结大家好,我是皮皮。这篇文章主要盘点了一个Python网络爬虫过验证码的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。
最后感谢粉丝【鶏啊鶏】提问,感谢【甯同学】、【魏哥】给出的思路和代码解析,感谢【Ineverleft】等人参与学习交流。
【提问补充】温馨提示,大家在群里提问的时候。可以注意下面几点:如果涉及到大文件数据,可以数据脱敏后,发点demo数据来(小文件的意思),然后贴点代码(可以复制的那种),记得发报错截图(截全)。代码不多的话,直接发代码文字即可,代码超过50行这样的话,发个.py文件就行。
大家在学习过程中如果有遇到问题,欢迎随时联系我解决(我的微信:pdcfighting1),应粉丝要求,我创建了一些高质量的Python付费学习交流群和付费接单群,欢迎大家加入我的Python学习交流群和接单群!
小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。
------------------- End -------------------
往期精彩文章推荐:
if a and b and c and d:这种代码有优雅的写法吗?
Pycharm和Python到底啥关系?
都说chatGPT编程怎么怎么厉害,今天试了一下,有个静态网页,chatGPT居然没搞定?
站不住就准备加仓,这个pandas语句该咋写?
欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持
想加入Python学习群请在后台回复【入群】
万水千山总是情,点个【在看】行不行
/今日留言主题/
随便说一两句吧~~
标签:
精彩推送
新闻快讯
X 关闭
X 关闭
新闻快讯
- 盘点一个Python网络爬虫过验证码的问题(方法一)
- 【新视野】重庆:强化团属校外教育
- 1+2+N!金融促进创新发展,昌平发布重磅《措施》 世界快资讯
- 重磅!首批算法备案清单发布,41个算法“持证上岗”,BAT抖音快手讯飞在列
- 【全球报资讯】好声音第四季鸟巢冲刺夜 好声音学员大淘汰
- 相同电压的交流电和直流电哪个对人体伤害大(电压相同的交流电和直流电哪个伤害大)_观天下
- 意大利是属于英国吗_意大利是英国还是法国简介介绍
- 【社工总站】情系端午节 爱在敬老院
- 易纬集团(03893):梁士锋获委任为执行董事及财务董事 环球观点
- 德州银行连续三年蝉联“金誉奖·卓越运营管理能力银行”
- 凑凑一门店因缺斤少两被罚款1.25万元
- 钧达股份:股东陆小红拟减持不超0.69%股份
- 全球聚焦:太保家园青岛社区体验馆开放 尽展华东标杆康养社区美好画卷
- 2023发财致富门路,开家儿童灯饰店是不错的选择
- 全球新消息丨宁陵县法院:端午送温暖关爱留守儿童
- “敬大朋友的热爱”大朋玩家体验会完美收官!-即时
- “中国兰花第一县”逾160个兰花品种指导价发布 当前报道
- 年轻人在小红书「卷」电动车
- 博汇科技06月21日主力大幅流入
- 天天观速讯丨DR江山欧(603208)6月21日主力资金净卖出339.92万元
- 要闻速递:武汉市育才怡康小学2023年新生资格审核公告
- 环球观热点:参展项目是否侵权?24小时判定!
- 【全球速看料】a2驾照可以开多少座的客车(能开19座7米客车吗)
- 每日热点:眼前一黑突然晕倒是什么原因_突然晕倒急救措施
- 韶光易逝 刹那芳华_韶光易逝
- 3岁小天赐父亲节献吻,72岁黄老汉一脸陶醉,不后悔高龄生女-全球滚动
- 【新要闻】巴山夜雨涨秋池的涨有什么作用-巴山夜雨涨秋池涨的妙处
- 青春期孩子叛逆怎么办_家长应该如何应对
- 芭蕾舞基本功压脚背超痛视频-芭蕾舞基本功压脚背
- 耶拉维奇为克罗地亚出场36次,打进6球,在201...
- 美国纽约地铁周末发生5起伤人事件 官员称“令人不安” 环球热讯
- 全球信息:今世缘(603369):6月20日北向资金减持35.72万股
- 世界焦点!微软携手 IGN,7 月 11 日举办 ID@Xbox 游戏展示会
- u盘在我的电脑上不显示怎么办视频_u盘在我的电脑上不显示怎么办-环球快讯
- 每日报道:文明青岛随手拍|城市“牛皮癣”露头就整治!清理小广告“除癣”治乱两手硬
- 环球关注:中庭地白树栖鸦借用典故(中庭地白树栖鸦修辞)
- 世界视点!怎么查高考生录取情况(如何查询高考录取情况)
- 【图片新闻】岷县蒲麻镇群众对黄芪幼苗进行田间覆膜-世界新要闻
- 焦点热门:视频剪辑怎么自学
- 【新要闻】卧龙电驱:希尔公司目前的在手订单达到了历史新高
- 刚刚央行降息落地,购房者好消息,象征信号大,期待更大刺激政策
- 守护大美甘肃,甘肃检察这样做!
- 湖南新宁:瑶乡绿茶香飘千里_世界消息
- 全国铁路7月1日起实行新的列车运行图 焦点速递
- 云南思茅六中:党建引领重实践 劳动育人促发展
- 诈骗案件:行为人被口头或电话传唤到案,如何争取自首?_环球观察
- 填志愿,怎样看待专业“冷热”
- 天天热文:暑期旅游热潮来了
- 今日精选:汉宇集团:6月19日融资买入5134.58万元,融资融券余额1.58亿元
- 聚焦:北京城建发展:竞得北京朝阳区崔各庄一宗地块,成交金额34.5亿元