您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
这篇文章主要为大家展示了“python如何实现火车票抢票”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python如何实现火车票抢票”这篇文章吧。
该代码仅供参考,主要用于大家沟通交流,禁止用于商业用途。
具体代码如下,可以修改成自己的12306用户名账号:
# -*- coding: utf-8 -*- from splinter.browser import Browser from time import sleep import traceback import time, sys class huoche(object): """docstring for huoche""" driver_name='' executable_path='' username = u"xxx@qq.com" passwd = u"xxxx" starts = u"%u4E0A%u6D77%2CSHH" ends = u"%u592A%u539F%2CTYV" dtime = u"2018-01-19" order = 0 users = [u"xxx",u"xxx"] xb = u"二等座" pz=u"成人票" ticket_url = "https://kyfw.12306.cn/otn/leftTicket/init" login_url = "https://kyfw.12306.cn/otn/login/init" initmy_url = "https://kyfw.12306.cn/otn/index/initMy12306" buy="https://kyfw.12306.cn/otn/confirmPassenger/initDc" def __init__(self): self.driver_name='chrome' self.executable_path='/usr/local/bin/chromedriver' def login(self): self.driver.visit(self.login_url) self.driver.fill("loginUserDTO.user_name", self.username) # sleep(1) self.driver.fill("userDTO.password", self.passwd) print u"等待验证码..." while True: if self.driver.url != self.initmy_url: sleep(1) else: break def start(self): self.driver=Browser(driver_name=self.driver_name,executable_path=self.executable_path) self.driver.driver.set_window_size(1400, 1000) self.login() # sleep(1) self.driver.visit(self.ticket_url) try: print u"购票页面开始..." self.driver.cookies.add({"_jc_save_fromStation": self.starts}) self.driver.cookies.add({"_jc_save_toStation": self.ends}) self.driver.cookies.add({"_jc_save_fromDate": self.dtime}) self.driver.reload() count=0 if self.order!=0: while self.driver.url==self.ticket_url: self.driver.find_by_text(u"查询").click() count += 1 print u"循环点击查询..." % count # sleep(1) try: self.driver.find_by_text(u"预订")[self.order - 1].click() except Exception as e: print e print u"还没开始预订" continue else: while self.driver.url == self.ticket_url: self.driver.find_by_text(u"查询").click() count += 1 print u"循环点击查询..." % count # sleep(0.8) try: for i in self.driver.find_by_text(u"预订"): i.click() sleep(1) except Exception as e: print e print u"还没开始预订 %s" %count continue print u"开始预订..." # sleep(3) # self.driver.reload() sleep(1) print u'开始选择用户...' for user in self.users: self.driver.find_by_text(user).last.click() print u"提交订单..." sleep(1) # self.driver.find_by_text(self.pz).click() # self.driver.find_by_id('').select(self.pz) # # sleep(1) # self.driver.find_by_text(self.xb).click() # sleep(1) self.driver.find_by_id('submitOrder_id').click() # print u"开始选座..." # self.driver.find_by_id('1D').last.click() # self.driver.find_by_id('1F').last.click() sleep(1.5) print u"确认选座..." self.driver.find_by_id('qr_submit_id').click() except Exception as e: print e if __name__ == '__main__': huoche=huoche() huoche.start()
以上是“python如何实现火车票抢票”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。