selenium 模拟登陆去哪网,处理验证码

诶,这两天一直在搞验证码搞得我头皮发麻,昨天晚上做梦都是在搞验证码,好在最后终于搞出来了!!!

开始的思路是用requests库去get验证码的url,然后解析,但是发现做不到,解析的验证码跟登录时的不一样,可能是没有保持同一个会话。后来换了一个思路轻轻松松的就解决了(当然这也是付出了很多时间去探索的)

现在说一下登陆的思路:

输入账号密码什么的都是基本操作,重点是验证码的获取,这里我用的是selenium的截图操作,先将整张页面截取,然后用画图工具打开图片人工解析验证码的坐标,将坐标带入函数进行截取。(selenium提供了自动定位的函数,但是我试了很多次,他的定位很不准,根本定位不到验证码,无奈之下只能人工定位了,但是解决了问题也是很高兴的)

好了,废话不在多说,开代码的时间到了:

from selenium import webdriver
from chaojiying import Chaojiying_Client
from PIL import Image
import time

#去哪网url
url = "https://user.qunar.com/passport/login.jsp?ret=https%3A%2F%2Fwww.qunar.com%2F%3Fex_track%3Dauto_4e0d874a"

def start_project():
	#点击密码登录按钮
	button_1 = driver.find_element_by_xpath('/html/body/div[2]/div[3]/div[2]/div[1]/div/div/div[5]/a[1]')
	button_1.click()

	#通过坐标截取验证码
	#先截取整个网页
	driver.get_screenshot_as_file("F://picture.png")
	#在整个页面的基础上截取验证码区域并进行保存
	picture = Image.open("F://picture.png")
	picture = picture.crop((1390, 390, 1494, 425))#验证码坐标位置
	picture.save('F://real.png')

def Verify_project():
	#传给打码平台搞验证码
	username = '超级鹰账号'
	password = '超级鹰密码'
	host = '个人的host'#注册会有
	chaojiying = Chaojiying_Client(username, password, host)

	#读取刚才保存的验证码截图,传给打码平台
	im = open("F://real.png",'rb').read()
	yan = chaojiying.PostPic(im, 1902)['pic_str']
	return yan#返回验证码的值

def Enter_project():
	#输入账号密码,点击登录按钮
	yan = Verify_project()#获取验证码
	#账号
	input_1 = driver.find_element_by_xpath('//*[@id="loginForm"]/div[2]/div[1]/input')
	input_1.clear()
	input_1.send_keys('去哪网账号')
	#密码
	input_2 = driver.find_element_by_xpath('//*[@id="loginForm"]/div[2]/div[4]/input')
	input_2.clear()
	input_2.send_keys('密码')
	#验证码
	input_3 = driver.find_element_by_xpath('//*[@id="captcha"]/div/input')
	input_3.clear()
	input_3.send_keys(yan)
	#点击登录按钮
	button = driver.find_element_by_xpath('//*[@id="submit"]')
	button.click()

if __name__ == "__main__":
	#模拟登陆页面
	driver = webdriver.Chrome()
	driver.get(url)
	driver.maximize_window()#窗口最大化
	driver.implicitly_wait(10)
	start_project()
	Enter_project()
	time.sleep(5)
	driver.quit()#退出模拟登陆

这里处理验证码用的是超级鹰打码平台,没有的可以注册一下

超级鹰戳这里进入!!!

猜你喜欢

转载自blog.csdn.net/weixin_43901998/article/details/88669506
今日推荐