2020-7-2 by 微风
思路
1 使用webdriver调用谷歌浏览器,然后请求滴滴打码网站。
2 通过selenium的xpath定位方法找到输入账号、密码、验证码、登陆的位置,并且传送具体的账号、密码给对应的位置。
3 对于传送验证码的问题:首先需要重新单独请求验证码,然后将验证码下载到本地,接着使用超级鹰来识别下载到本地的验证码,把识别后的验证码传送到网页中输入验证码的位置。
4 点击登陆的位置。
from selenium import webdriver
import request
#打开谷歌浏览器
driver = webdriver.Chrome(r'D:\Python37\Lib\chromedriver.exe')
#请求滴滴打码网站
driver.get('http://www.ddocr.com/user/login.html')
#传送账号、密码到相应的位置
driver.find_element_by_xpath('//*[@id="account"]').send_keys('账号')
driver.find_element_by_xpath('//*[@id="password"]').send_keys('密码')
#重新单独请求验证码
src = driver.find_element_by_xpath('//*[@id="verifyImg"]').get_attribute('src')
yanzhengma = requests.get(src)
#将验证码下载到本地
with open('yanzhengma.jpg','wb') as file:
file.write(yanzhengma.content)
#使用超级鹰识别下载到本地的验证码
#定义Chaojiying_Client类的代码是超级鹰官网自带的
from hashlib import md5
class Chaojiying_Client(object):
def __init__(self, username, password, soft_id):
self.username = username
self.password = md5(password.encode('utf8')).hexdigest()
self.soft_id = soft_id
self.base_params = {
'user': self.username,
'pass2': self.password,
'softid': self.soft_id,
}
self.heade