日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

php写抢票脚本,火车票抢票python代码公开揭秘!

發(fā)布時間:2024/7/5 php 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php写抢票脚本,火车票抢票python代码公开揭秘! 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

市場上很多火車票搶票軟件大家應(yīng)該非常熟悉,但很少有人研究具體是怎么實現(xiàn)的,所以覺得很神秘,其實很簡單。下面使用Python模擬搶票程序,給大家揭秘?fù)屍钡降资窃趺椿厥隆?/p>

該代碼僅供參考,主要用于大家溝通交流,禁止用于商業(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"預(yù)訂")[self.order - 1].click()

except Exception as e:

print e

print u"還沒開始預(yù)訂"

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"預(yù)訂"):

i.click()

sleep(1)

except Exception as e:

print e

print u"還沒開始預(yù)訂 %s" %count

continue

print u"開始預(yù)訂..."

# 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"確認(rèn)選座..."

self.driver.find_by_id('qr_submit_id').click()

except Exception as e:

print e

if __name__ == '__main__':

huoche=huoche()

huoche.start()

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

總結(jié)

以上是生活随笔為你收集整理的php写抢票脚本,火车票抢票python代码公开揭秘!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。