爬虫学习_selenium自动填写验证码

本文介绍了使用selenium和tesseract进行验证码识别的过程,包括打开网站、截图识别验证码,并探讨了识别效果和应用场景。
摘要由CSDN通过智能技术生成

介绍一哈

最近在跟着静觅大神。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。的书、博客学习爬虫,准备学学写写记录一下。希望可以跟各位互相学习一下(抱拳)

项目

在学习了tesseract识别验证码后,准备用selenium + tesserocr写个中国知网的自动填写验证码
网站地址: 点我点我.

页面如下:
在这里插入图片描述

第一步 打开网站

直接用selenium打开 不多说不多说
讲究一点 可以添加点响应时长 和 等待浏览器加载完毕的 设置

from selenium import webdriver

browser = webdriver.Chrome()
browser.get('http://my.cnki.net/elibregister/commonRegister.aspx')

第二步 获取验证码图片

一开始的想法是 获取网页中验证码图片的地址 下载图片 再做验证码识别 然后再填入
在这里插入图片描述
在network中发现 CheckCode.aspx 就是验证码 那么我们就可以通过 [Request URL] 得到验证码图片地址(http://my.cnki.net/elibregister/CheckCode.aspx)
在这里插入图片描述

import requests

headers = {
   
	'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 '
                          '(KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36'
}
url = 'http://my.cnki.net/elibregister/CheckCode.aspx'

res = requests.get(url, headers=headers)
with open('./checkcode.png', 'wb') as f:
	f.write(res.content)

好了! 我们现在已经获取到验证码存到本地了! 只要识别之后 填入就ok了!
但是突然想到 用selenium打开的页面中的验证码与我们自己通过url获取的验证码其实没有一毛钱关系!
当时 还在想 有啥方法 可以 让selenium打开的页面 与 requests请求获取的验证码在同一个Session下进行
反正就是挺憨憨的

第二步 获取验证码图片

没错!还是第二步。后来发现 selenium 获取验证码其实有简单粗暴的方法 就是直接截图 o(╥﹏╥)o

		browser = webdriver.Chrome()
        browser.get('http://my.cnki.net/elibregister/commonRegister.aspx')
        browser.save_screenshot('./checkcode.png')  # 保存整个网页
        
        element = browser.find_element_by_xpath('/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值