Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
janlyn06
12306
提交
75da2b8c
1
12306
项目概览
janlyn06
/
12306
通知
4
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
1
12306
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
75da2b8c
编写于
9月 10, 2019
作者:
X
xianping.wen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
修复查询302,version 1.1.109
上级
6d7728b5
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
25 addition
and
16 deletion
+25
-16
TickerConfig.py
TickerConfig.py
+9
-11
config/getCookie.py
config/getCookie.py
+5
-0
config/urlConf.py
config/urlConf.py
+1
-1
init/login.py
init/login.py
+1
-1
init/select_ticket_info.py
init/select_ticket_info.py
+4
-2
inter/Query.py
inter/Query.py
+1
-0
myUrllib/httpUtils.py
myUrllib/httpUtils.py
+4
-1
未找到文件。
TickerConfig.py
浏览文件 @
75da2b8c
...
...
@@ -6,17 +6,16 @@
# 刷票模式:1=刷票 2=候补+刷票
TICKET_TYPE
=
2
# 出发日期(list) "2018-01-06", "2018-01-07"
STATION_DATES
=
[
"2019-09-
3
0"
"2019-09-
2
0"
]
# 填入需要购买的车次(list),"G1353"
STATION_TRAINS
=
[
""
,
""
,
]
# 出发城市,比如深圳北,就填深圳就搜得到
FROM_STATION
=
""
...
...
@@ -46,7 +45,6 @@ IS_MORE_TICKET = True
# - "李四"
TICKET_PEOPLES
=
[
""
,
""
,
]
# 12306登录账号
...
...
@@ -81,13 +79,12 @@ EMAIL_CONF = {
"host"
:
""
,
}
# 是否开启
server酱 微信提醒, 使用前需要前往 http://sc.ftqq.com/3.version 扫码绑定获取 SECRET
并关注获得抢票结果通知的公众号
SERVER_CHAN
_CONF
=
{
"is_
server_chan
"
:
False
,
"se
cret
"
:
""
# 是否开启
pushbear 微信提醒, 使用前需要前往 http://pushbear.ftqq.com 扫码绑定获取 send_key
并关注获得抢票结果通知的公众号
PUSHBEAR
_CONF
=
{
"is_
pushbear
"
:
False
,
"se
nd_key
"
:
""
}
# 是否开启cdn查询,可以更快的检测票票 1为开启,2为关闭
IS_CDN
=
1
...
...
@@ -108,10 +105,11 @@ IS_PROXY = 0
# 预售放票时间, 如果是捡漏模式,可以忽略此操作
OPEN_TIME
=
"13:00:00"
# 1=使用selenium获取devicesID
# 2=使用网页端/otn/HttpZF/logdevice获取devicesId,这个接口的算法目前可能有点问题,如果登录一直302的请改为配置1
COOKIE_TYPE
=
1
# 如果COOKIE_TYPE=
1
,则需配置chromeDriver路径,下载地址http://chromedriver.storage.googleapis.com/index.html
# 如果COOKIE_TYPE=
2
,则需配置chromeDriver路径,下载地址http://chromedriver.storage.googleapis.com/index.html
# chromedriver配置版本只要和chrome的大版本匹配就行
CHROME_PATH
=
"/Users/wenxianping/Downloads/chromedriver"
...
...
@@ -128,4 +126,4 @@ PASSENGER_TICKER_STR = {
}
# 软件版本
RE_VERSION
=
"1.1.10
8
"
RE_VERSION
=
"1.1.10
9
"
config/getCookie.py
浏览文件 @
75da2b8c
...
...
@@ -27,6 +27,7 @@ def getDrvicesID(session):
print
(
f
"获取cookie:
{
cookies
}
"
)
if
cookies
:
session
.
httpClint
.
set_cookies
(
cookies
)
session
.
cookies
=
cookies
print
(
"cookie获取完成"
)
elif
TickerConfig
.
COOKIE_TYPE
is
2
:
request_device_id
(
session
)
...
...
@@ -48,6 +49,10 @@ def request_device_id(session):
'RAIL_EXPIRATION'
:
result
.
get
(
'exp'
),
'RAIL_DEVICEID'
:
result
.
get
(
'dfp'
),
}])
session
.
cookies
=
[{
'RAIL_EXPIRATION'
:
result
.
get
(
'exp'
),
'RAIL_DEVICEID'
:
result
.
get
(
'dfp'
),
}]
except
:
return
False
...
...
config/urlConf.py
浏览文件 @
75da2b8c
...
...
@@ -34,7 +34,7 @@ urls = {
"Referer"
:
"https://kyfw.12306.cn/otn/resources/login.html"
,
"Host"
:
"kyfw.12306.cn"
,
"Content-Type"
:
1
,
"re_try"
:
2
,
"re_try"
:
10
,
"re_time"
:
1
,
"s_time"
:
0.5
,
"is_logger"
:
True
,
...
...
init/login.py
浏览文件 @
75da2b8c
...
...
@@ -128,7 +128,7 @@ class GoLogin:
login_num
=
0
while
True
:
if
loginConf
(
self
.
session
):
self
.
auth
()
#
self.auth()
result
=
getPassCodeNewOrderAndLogin1
(
session
=
self
.
session
,
imgType
=
"login"
)
if
not
result
:
...
...
init/select_ticket_info.py
浏览文件 @
75da2b8c
...
...
@@ -41,7 +41,8 @@ class select:
self
.
urls
=
urlConf
.
urls
self
.
login
=
GoLogin
(
self
,
TickerConfig
.
IS_AUTO_CODE
,
self
.
auto_code_type
)
self
.
cdn_list
=
[]
self
.
queryUrl
=
"leftTicket/queryT"
self
.
cookies
=
""
self
.
queryUrl
=
"leftTicket/queryA"
self
.
passengerTicketStrList
=
""
self
.
passengerTicketStrByAfterLate
=
""
self
.
oldPassengerStr
=
""
...
...
@@ -111,6 +112,7 @@ class select:
def
cdn_req
(
self
,
cdn
):
for
i
in
range
(
len
(
cdn
)
-
1
):
http
=
HTTPClient
(
0
)
http
.
set_cookies
(
self
.
cookies
)
urls
=
self
.
urls
[
"loginInitCdn"
]
http
.
_cdn
=
cdn
[
i
].
replace
(
"
\n
"
,
""
)
start_time
=
datetime
.
datetime
.
now
()
...
...
@@ -142,11 +144,11 @@ class select:
raise
ticketConfigException
(
u
"cdn列表为空,请先加载cdn"
)
def
main
(
self
):
self
.
cdn_certification
()
l
=
liftTicketInit
(
self
)
l
.
reqLiftTicketInit
()
getDrvicesID
(
self
)
self
.
call_login
()
self
.
cdn_certification
()
check_user
=
checkUser
(
self
)
t
=
threading
.
Thread
(
target
=
check_user
.
sendCheckUser
)
t
.
setDaemon
(
True
)
...
...
inter/Query.py
浏览文件 @
75da2b8c
...
...
@@ -18,6 +18,7 @@ class query:
ticke_peoples_num
,
station_dates
=
None
,
):
self
.
session
=
session
self
.
httpClint
=
HTTPClient
(
TickerConfig
.
IS_PROXY
)
self
.
httpClint
.
set_cookies
(
self
.
session
.
cookies
)
self
.
urls
=
urlConf
.
urls
self
.
from_station
=
from_station
self
.
to_station
=
to_station
...
...
myUrllib/httpUtils.py
浏览文件 @
75da2b8c
# -*- coding: utf8 -*-
import
json
import
random
import
socket
from
collections
import
OrderedDict
from
time
import
sleep
...
...
@@ -14,7 +15,9 @@ def _set_header_default():
# header_dict["Accept"] = "application/json, text/plain, */*"
header_dict
[
"Accept-Encoding"
]
=
"gzip, deflate"
header_dict
[
"User-Agent"
]
=
"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"
"User-Agent"
]
=
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0."
+
str
(
random
.
randint
(
5000
,
7000
))
+
".0 Safari/537.36"
header_dict
[
"Content-Type"
]
=
"application/x-www-form-urlencoded; charset=UTF-8"
header_dict
[
"Origin"
]
=
"https://kyfw.12306.cn"
header_dict
[
"Connection"
]
=
"keep-alive"
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录