python爬虫验证码问题

今天本来想写个爬虫程序自动登录学校的教务在线,可是却被验证码给难住了,真是伤脑筋,先记下,以后在想。

1.selenium驱动浏览器在用户名输入框和密码输入框,分别输入用户名和密码

from selenium import webdriver
from yundama import YDMHttp
import time
import requests
from urllib import request

#1.驱动浏览器输入用户名和密码
driver=webdriver.Chrome(executable_path="D:\ChromeDriver\chromedriver_win32\chromedriver.exe")
driver.get("http://202.199.224.24:11089/newacademic/common/security/login.jsp")
adminnameinputTag=driver.find_element_by_name('adminname')
adminnameinputTag.send_keys('1606110227')
passwordinputTag=driver.find_element_by_name('password')
passwordinputTag.send_keys('342622199912223218')

由此进入如下界面

这样就在教务在线界面输入完成了用户名和密码

2.下载验证码到本地

#2.下载验证码
url='http://202.199.224.24:11189/academic/common/security/check1.jsp'
response=requests.get(url)
request.urlretrieve(url,'yzm.jpg')

就在这一步得到验证码与登录时的验证码不一样,不知道该怎么解决,先记下

3.用云打码平台解析验证码

#3.云打码平台解析验证码
ydm = YDMHttp(username='i_panda_',password='ZWQ15350982026')
uid = ydm.login()
if not uid:
    print("登录失败!")

balance = ydm.balance()
if balance < 10:
    print("余额不足!")

_,result = ydm.decode(filename='yzm.jpg',codetype="4004")
print(result)

yzminputTag=driver.find_element_by_name('useryz')
yzminputTag.send_keys(result)

4.点击登录

#4.点击登录
button1=driver.find_element_by_name('button1')
button1.click()

然而总有些不perfect的地方
在这里插入图片描述

····································下回再续

发布了24 篇原创文章 · 获赞 8 · 访问量 1191

猜你喜欢

转载自blog.csdn.net/qq_41739233/article/details/104096179