系列文章专辑:https://bbs.ichunqiu.com/forum.php?mod=collection&action=view&ctid=96
目录:
0×00 前言
0×01 火车余票查询
0×02 Selenium模块简单介绍
0×03 打造SupremeBOT
0×00 前言
本篇文章灌输的主要思想,就是抢.因为有些东西买的是量,就比如说一些联名鞋.很扎心,抢不到就得去"黄牛"那买,价格大概翻了很多很多,就比如一个AJ1联名OFF-White的鞋原价1399,炒卖价已经到了1w+(其实我也是个SneakerHead)以下是我近期的交易记录(拿来装X的),很扎心…..But,现在都是抽签,跟抢貌似无关,就不写SneakerBot了…
再附上我在NIKE美国官网中签截图吧,听说Bred Toe还上了热搜,啊哈哈
所以就有了本篇文章吧….
强调一下,本文的主要目的就是抢东西,从火车余票查询,到打造一个抢Supreme的BOT吧。。而这一切都是基于Python
0×01 火车余票查询
之前回家,不少人为了火车票发愁……
所以,就有了本小节文章….监控火车余票…
本次环境是:Python2.7+deepinlinux
因为Windows编码问题多的我想打人,所以就换了linux
实现完的效果是这样的
咱们分步写
https://kyfw.12306.cn/otn/leftTicket/init,抓包
这是一个Get请求….所以看下这个url
https://kyfw.12306.cn/otn/leftTi … purpose_codes=ADULT
train_date参数后面是时间
from_station参数后是起点站
to_station参数后是到达站
分析了这些之后,就可以通过Python来实现这个url了
这里呢,有个问题,像这些城市地点的英文在哪获取,通过F12大法,发现在这
https://kyfw.12306.cn/otn/resour … tion_version=1.9047
我事先爬好了这些,在这里感谢一下Onise表哥@0nise,为了保证代码的美观性吧,所以我就import它了
先获取页面内容,
# -*- coding: utf-8 -*- import requests from stations import stations def Get_train_text(): from_station = stations.get(raw_input('Please enter where you are from:')) to_station = stations.get(raw_input('Please enter where you want to go:')) date = raw_input('Please enter the date you want to inquire:') url = ('https://kyfw.12306.cn/otn/leftTicket/queryZ?' 'leftTicketDTO.train_date={}&' 'leftTicketDTO.from_station={}&' 'leftTicketDTO.to_station={}&' 'purpose_codes=ADULT').format(date,from_station,to_station) r=requests.get(url) trains_text = r.json()['data']['result'] print trains_text if __name__ == '__main__': Get_train_text()
def Get_train_information():[/size] [size=3] for raw_train in Get_train_text():[/size] [size=3] print raw_train
然后观察一下
这样就很明朗了吧…
def Get_train_information(): key_list = [] value_list = [] for key,value in stations.items(): key_list.append(key) value_list.append(value) for raw_train in Get_train_text(): data_list = raw_train.split('|') train_number = data_list[3] #车次 from_station_code = data_list[6] #始发站信息 to_station_code = data_list[7] #终点站信息 from_station_index =