Python大法之从火车余票查询到打造抢Supreme神器

本文介绍了如何使用Python进行火车余票查询和打造Supreme抢购自动化工具。通过分析12306网站的API获取火车票信息,利用Selenium模块进行网页交互,实现Supreme商品的自动搜索、加入购物车和结账功能。
摘要由CSDN通过智能技术生成

本文作者:i春秋作家——阿甫哥哥

 系列文章专辑: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()


然后for循环…

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 = 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值