Python实现全自动购买火车票!抢票回家过年咯

本文介绍了如何使用Python的selenium库实现登陆12306并自动查询、购买火车票的流程。通过自动输入出发地、目的地、日期,以及处理验证码,实现全程自动化购票。请注意,实际操作中需遵守相关规定,避免频繁操作导致账号受限。
摘要由CSDN通过智能技术生成

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

python免费学习资料以及群交流解答点击即可加入

这个是实现结果,因为一天只能取消三次,所以最后一步点击确认被我注释了

1.首先实现使用selenium登陆12306

 这里实现了使用selenium登陆12306,实现全自动登陆12306链接
2.根据上面实现登陆后,实现购买火车票还需两步

这里只进行了二等座的查询和购票,想要买其他的自己也可以进行修改 1.进行车票的查询 这里面需要注意的是在输入目的地和起始地时需要先click一下文本框browser.find_element_by_id(‘fromStationText’).click() 不然输入的地址无效 还有将日期的只读属性去掉

def search_railway_ticket(fromstation,tostation,train_date):
    # 火车票页面查询url
    search_url = 'https://kyfw.12306.cn/otn/leftTicket/init?linktypeid=dc'
    # 转到查询车次页面
    browser.get(search_url)
    time.sleep(2)
    #输入出发地
    WebDriverWait(browser, 1000).until(
        EC.presence_of_element_located((By.ID, 'fromStationText'))
    )
    #先点击一下
    browser.find_element_by_id('fromStationText').click()
    browser.find_element_by_id('fromStationText').send_keys(fromstation)
    browser.find_element_by_id('fromStationText').send_keys(Keys.ENTER)
    time.sleep(1)
    WebDriverWait(browser, 1000).until(
        EC.presence_of_element_located((By.ID, 'toStationText'))
    )
    #输入目的地
    browser.find_element_by_id('toStationText').click()
    browser.find_element_by_id('toStationText').send_keys(tostation)
    browser.find_element_by_id('toStationText').send_keys(Keys.ENTER)
    time.sleep(5)
    #将日期的只读属性去掉
    js = 'document.getElementById("train_date").removeAttribute("readonly")'
    browser.execute_script(js)
    #去掉原本的时间
    WebDriverWait(browser, 1000).until(
        EC.presence_of_element_located((By.ID, 'train_date'))
    )
    browser.find_element_by_id("train_date").clear()
    #输入出发时间
    browser.find_element_by_id('train_date').send_keys(train_date)
    # 等待查询按钮是否可用
    WebDriverWait(browser, 1000).until(
        EC.element_to_be_clickable((By.ID, 'query_ticket'))
    )
    searBtn = browser.find_element_by_id('query_ticket')
    searBtn.click()
    print('点击按钮')

2.购买火车票 在这个函数中需要注意的是最好把最后一步注释掉 browser.find_element_by_id(‘qr_submit_id’).click() 因为一天只能取消3次订单

def buy_ticket(fromstation,tostation,train_date,train_number,passenger):
 
    #查询火车票
    search_railway_ticket(fromstation,tostation,train_date)
    time.sleep(5)
    #获取每一个车次的信息
    tr_list = browser.find_elem

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值