博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python火车票代码
阅读量:6561 次
发布时间:2019-06-24

本文共 2801 字,大约阅读时间需要 9 分钟。

前言:我想在源文章里加入下面一段来着,但是实在加不上,报什么405,造成安全威胁,不好意思哈各位,这么点内容还另起一章实在不好意思哈。

    千万别一直挂着会封ip的,别问我怎么知道的,我不想说T_T


代码如下:

虽然还是存在很多的问题,但是真的不愿意改了,票买到了就没什么动力,大家懂得,上面的代码的确存在问题不好意思:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# -*- coding: utf-8 -*-
"""
Created on Fri Dec 04 00:35:24 2015
 
@author: Ye
"""
 
from 
splinter.browser 
import 
Browser
from 
time 
import 
sleep
 
#用户名,密码
username 
= 
"用户名"
passwd 
= 
"密码"
#cookies值得自己去找,下面两个分别是上海,长沙,怎么找blog中说明了
starts 
= 
"%u4E0A%u6D77%2CSHH"
ends 
= 
"%u957F%u6C99%2CCSQ"
#时间格式2016-01-31
dtime 
= 
"2016-02-02"
#车次,选择第几趟,0则从上之下依次点击
order 
= 
0
###乘客名
pa 
= 
u
"乘客名(常用联系人)"
###车次类型
ttype
=
"GC-高铁/城际"
 
#网址
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"
config_url 
= 
"https://kyfw.12306.cn/otn/confirmPassenger/initDc"
 
def 
login():
b.find_by_text(u
"登录"
).click()
sleep(
3
)
b.fill(
"loginUserDTO.user_name"
,username)
sleep(
1
)
b.fill(
"userDTO.password"
,passwd)
sleep(
1
)
b.execute_script(
'alert("自行输入验证码吧~")'
)
print 
u
"等待验证码,自行输入..."
sleep(
10
)
 
def 
huoche():
global 
b
= 
Browser(driver_name
=
"chrome"
)
b.visit(ticket_url)
b.execute_script(
'alert("开始刷票喽~~~~")'
)
sleep(
2
)
b.get_alert().dismiss()
 
while 
b.is_text_present(u
"登录"
):
sleep(
1
)
login()
if 
b.url 
=
= 
initmy_url:
break
 
try
:
#跳回购票页面
b.visit(ticket_url)
 
#加载查询信息
b.cookies.add({
"_jc_save_fromStation"
:starts})
b.cookies.add({
"_jc_save_toStation"
:ends})
b.cookies.add({
"_jc_save_fromDate"
:dtime})
b.
reload
()
= 
1
 
#循环点击预订
if 
order !
= 
0
:
while 
b.url 
=
= 
ticket_url:
b.find_by_text(u
"查询"
).click()
#                b.find_by_text(ttype).click()
 
if 
b.find_by_text(u
"预订"
):
sleep(
0.3
)
b.find_by_text(u
"预订"
)[order 
- 
1
].click()
print 
b.url
 
if 
b.is_text_present(u
"证件号码"
,wait_time
=
0.2
):
#                        print [ i.text for i in b.find_by_text(pa) ]
b.find_by_text(pa)[
1
].click()
 
else
:
b.execute_script(
'alert("似乎没有可预订选项")'
)
b.get_alert().dismiss()
pass
 
else
:
while 
b.url 
=
= 
ticket_url:
b.find_by_text(u
"查询"
).click()
if 
b.find_by_text(u
"预订"
):
sleep(
0.3
)
for 
in 
b.find_by_text(u
"预订"
):
i.click()
sleep(
0.1
)
if 
b.is_text_present(u
"证件号码"
):
b.find_by_text(pa)[
1
].click()
 
else
:
b.execute_script(
'alert("似乎没有可预订选项")'
)
b.get_alert().dismiss()
pass
 
b.execute_script(
'alert("能做的都做了")'
)
b.get_alert().dismiss()
 
print  
u
"能做的都做了.....不再对浏览器进行任何操作"
 
except 
Exception:
print 
u
"出错了...."
 
if 
__name__ 
=
= 
"__main__"
:
huoche()

放上来怎么没有缩进了T_T

好吧,还是百度云吧

本文转自 youerning 51CTO博客,原文链接:http://blog.51cto.com/youerning/1719911

转载地址:http://swujo.baihongyu.com/

你可能感兴趣的文章
CODING Pages 服务全面升级,更快更稳更可靠!
查看>>
js 小数取整,js 小数向上取整,js小数向下取整
查看>>
mysql 自定义函数与自定义存储过程的调用方法
查看>>
vue-cli3.0
查看>>
window.location.replace vs window.location.href
查看>>
CVPR 2018:阿里提出应用 LocalizedGAN 进行半监督训练
查看>>
「人物特写」工程院院士谭建荣:马云不是制造业的杀手,工业机器人也不是救命良药...
查看>>
被劫持的wordpress.com账户被用来感染站点
查看>>
哄宝宝入睡不再发愁,福特发布Max Motor Dreams智能婴儿床
查看>>
PHP用星号隐藏部份用户名、身份证、IP、手机号等实例
查看>>
分享一下最近看的东西
查看>>
《大数据、小数据、无数据:网络世界的数据学术》一 第2章 何为数据 2.1 引言...
查看>>
WatchStor观察:2008年存储大事记
查看>>
阿里钉钉开启企业服务 让冷冰冰的工作也可以有温度
查看>>
寓教于乐的顶峰:新一届大学生集群竞赛火热开战
查看>>
《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一第1章 职业发展机会和团队建设...
查看>>
HBase BlockCache系列 - 探求BlockCache实现机制
查看>>
中国勒索软件数量增长超过67倍 多层防护机制是防御关键
查看>>
【参与有奖】您用的MySQL、MongoDB、Redis等服务被勒索过吗?
查看>>
Java核心技术卷I基础知识1.2.6 体系结构中立
查看>>