import time
import smtplib
from email.mime.text import MIMEText
from selenium import webdriver
from selenium.webdriver.support.select import Select
"""
--1>验证码有一定规律和数量,可以利用脚本获取所有图片,并加上相应标签
--2>将页面的文字和标签相匹配,再将图片进行相似度计算,对对应图片进行点击操作
--3>或是训练深度学习的图片识别模型,通过算法识别
"""
def byTrain():
browser = webdriver.Chrome()
browser.get("https://kyfw.12306.cn/otn/login/init")
browser.find_element_by_id('username').clear()
browser.find_element_by_id('username').send_keys('****')
browser.find_element_by_id('password').send_keys('******')
time.sleep(10)
browser.find_element_by_id('loginSub').click()
time.sleep(6)
browser.find_element_by_link_text('车票预订').click()
while True:
'''
车站车次查询:https://kyfw.12306.cn/otn/czxx/init中js加载
车站代码
https://kyfw.12306.cn/otn/resources/js/framework/station_name.js?station_version=1.9042
'''
browser.refresh()
jsf = 'var a = document.getElementById("fromStation");a.value = "SZQ"'
browser.execute_script(jsf)
jst = 'var a = document.getElementById("toStation");a.value = "CZQ"'
browser.execute_script(jst)
js = "document.getElementById('train_date').removeAttribute('readonly')"
browser.execute_script(js)
browser.find_element_by_id('train_date').clear()
browser.find_element_by_id('train_date').send_keys('2018-02-02')
browser.find_element_by_id('query_ticket').click()
time.sleep(2)
try:
browser.find_element_by_xpath('//tr[@id="ticket_69000K90640E"]/td[13]/a').click()
break
except:
pass
time.sleep(4)
browser.find_element_by_id('normalPassenger_0').click()
time.sleep(2)
browser.find_element_by_id("dialog_xsertcj_cancel").click()
time.sleep(2)
browser.find_element_by_id('submitOrder_id').click()
time.sleep(2)
browser.find_element_by_id('qr_submit_id').click()
def sendEmail():
sender = '**@163.com'
password = '**'
receivers = ["[email protected]"]
text = '麻痹的,终于抢到了!!!'
message = MIMEText(text)
message['From'] = sender
message['To'] = receivers[0]
message['Subject'] = '最近还好吗?'
try:
smtpObj = smtplib.SMTP('smtp.163.com', 25)
smtpObj.login(sender, password)
smtpObj.sendmail(sender, receivers, message.as_string())
smtpObj.quit()
print("邮件发送成功")
except smtplib.SMTPException as e:
print("Error: 无法发送邮件", e)
def main():
byTrain()
if __name__ == '__main__':
main()