python使用selenium模块实现火车票的自动购买
实现功能描述
程序运行后会打开一个浏览器界面定义其尺寸>打开预先设置好的url地址>点击账号密码登录>自动填入账号密码>识别图片验证码并点击>登陆>选择购买单程票>选择类型、车次>预订>大功告成!!!
系统:win10 64位
解释器:python3.8 64位
IDE:pycharm
浏览器:Chrome
直接撸代码
- 导入程序所需要的模块 ;
import base64
import requests
import re
import time
from selenium import webdriver # 导入浏览器驱动,这里需要你预先安装谷歌浏览器的驱动(Chromedriver,网上可以搜到,安装和自己浏览器版本一样就好,传送门(https://npm.taobao.org/mirrors/chromedriver).不会安装或者找不到可以给我留言),不然没办法工作
from selenium.webdriver.common.keys import Keys # 模拟点击
from selenium.webdriver import ActionChains # 动作类对象
2.登陆函数
def login():
driver.get('https://kyfw.12306.cn/otn/resources/login.html') # 12306登陆界面url
driver.set_window_size(1200, 900) # 设置浏览器界面尺寸
driver.implicitly_wait(10) # 隐式等待
driver.find_element_by_xpath('/html/body/div[2]/div[2]/ul/li[2]/a').click() # 选择账号登录
driver.find_element_by_xpath('//*[@id="J-userName"]').send_keys('填入用户名') # 使用xpath进行匹配,调用send_keys来实现自动填写内容
driver.find_element_by_xpath('//*[@id="J-password"]').send_keys('填入密码')
image_url = driver.find_element_by_xpath('//*[@id="J-loginImg"]').get_attribute('src') # 获取图片图片验证码url
# print(image_url)
return image_url
- 保存验证码图片到本