欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

火車票搶票python代碼公開揭秘!

 更新時間:2018年03月08日 11:03:03   作者:閔開慧  
火車票搶票python代碼公開揭秘!使用Python模擬搶票程序,給大家揭秘搶票到底是怎么回事,感興趣的小伙伴們可以參考一下

市場上很多火車票搶票軟件大家應該非常熟悉,但很少有人研究具體是怎么實現(xiàn)的,所以覺得很神秘,其實很簡單。下面使用Python模擬搶票程序,給大家揭秘搶票到底是怎么回事。

該代碼僅供參考,主要用于大家溝通交流,禁止用于商業(yè)用途。

具體代碼如下,可以修改成自己的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"循環(huán)點擊查詢..." % 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"循環(huán)點擊查詢..." % 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()

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Python3實現(xiàn)爬蟲爬取趕集網(wǎng)列表功能【基于request和BeautifulSoup模塊】

    Python3實現(xiàn)爬蟲爬取趕集網(wǎng)列表功能【基于request和BeautifulSoup模塊】

    這篇文章主要介紹了Python3實現(xiàn)爬蟲爬取趕集網(wǎng)列表功能,結合實例形式分析了Python3基于request和BeautifulSoup模塊的網(wǎng)站頁面爬取相關操作技巧,需要的朋友可以參考下
    2018-12-12
  • python導出mysql指定binlog文件實現(xiàn)demo

    python導出mysql指定binlog文件實現(xiàn)demo

    這篇文章主要介紹了python導出mysql指定binlog文件實現(xiàn)demo,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • python關于字典及遍歷的常用方法

    python關于字典及遍歷的常用方法

    這篇文章主要介紹了python關于字典及遍歷的常用方法,字典的鍵可以是字符串、整數(shù)、元組或字典。字典的值也可以是字符串、整數(shù),文章圍繞主題展開更多詳細的內(nèi)容,需要的小伙伴可以參考一下
    2022-06-06
  • numpy之sum()的使用及說明

    numpy之sum()的使用及說明

    這篇文章主要介紹了numpy之sum()的使用及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Python深度學習之圖像標簽標注軟件labelme詳解

    Python深度學習之圖像標簽標注軟件labelme詳解

    這篇文章主要介紹了Python深度學習之圖像標簽標注軟件labelme詳解,文中有非常詳細的代碼示例,對正在學習python的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • Python編程pygame模塊實現(xiàn)移動的小車示例代碼

    Python編程pygame模塊實現(xiàn)移動的小車示例代碼

    這篇文章主要介紹了Python編程pygame模塊實現(xiàn)移動的小車示例代碼,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • django中row語法詳解

    django中row語法詳解

    在Django模板中,使用{{ row }}語法可以輸出列表row的所有元素,但是如果你想要輸出列表中的某個元素,需要使用下標來訪問它,這篇文章主要介紹了django中row語法詳解,需要的朋友可以參考下
    2023-06-06
  • 用python寫的一個wordpress的采集程序

    用python寫的一個wordpress的采集程序

    在學習python的過程中,經(jīng)過不斷的嘗試及努力,終于完成了第一個像樣的python程序,雖然還有很多需要優(yōu)化的地方,但是目前基本上實現(xiàn)了我所要求的功能,需要的朋友可以參考下
    2016-02-02
  • Python中關于集合的介紹與常規(guī)操作解析

    Python中關于集合的介紹與常規(guī)操作解析

    Python除了List、Tuple、Dict等常用數(shù)據(jù)類型外,還有一種數(shù)據(jù)類型叫做集合(set),集合的最大特點是:集合里邊的元素是不可重復的并且集合內(nèi)的元素還是無序的
    2021-09-09
  • Python實現(xiàn)Excel表格轉置與翻譯工具

    Python實現(xiàn)Excel表格轉置與翻譯工具

    本文主要介紹如何使用Python編寫一個GUI程序,能夠讀取Excel文件,將第一個列的數(shù)據(jù)轉置,并將英文內(nèi)容翻譯成中文,有需要的小伙伴可以參考一下
    2024-10-10

最新評論