本文作者: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 = value_list.index(from_station_code)
        to_station_index = value_list.index(to_station_code)
        from_station_name = key_list[from_station_index]
        to_station_name = key_list[to_station_index]
        start_time = data_list[8] #出发时间
        arrive_time = data_list[9]  #到达时间
        time_duration = data_list[10]  #历时
        first_class_seat = data_list[31] #一等座
        second_class_seat = data_list[30] #二等座
        soft_sleep = data_list[23] or '--' #软卧
        hard_sleep = data_list[28] or '--'  #硬卧
        hard_seat= data_list[29] or '--' #硬座
        no_seat = data_list[26] or '--'  #无座

大概就是这样,然后让这些可观,就要用到PrettyTable了

pip install prettytable

# -*- coding: utf-8 -*-
import requests
from stations import stations
from prettytable import PrettyTable
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']
    return trains_text
def Get_train_information():
    key_list = []
    value_list = []
    table = PrettyTable()
    table._set_field_names('车次 出发地点 到达地点 出发时间 到达时间 历时 一等 二等 软卧 硬卧 硬座 无座'.split())
    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 = value_list.index(from_station_code)
        to_station_index = value_list.index(to_station_code)
        from_station_name = key_list[from_station_index]
        to_station_name = key_list[to_station_index]
        start_time = data_list[8] #出发时间
        arrive_time = data_list[9]  #到达时间
        time_duration = data_list[10]  #历时
        first_class_seat = data_list[31] #一等座
        second_class_seat = data_list[30] #二等座
        soft_sleeper = data_list[23] or '--' #软卧
        hard_sleeper = data_list[28] or '--'  #硬卧
        hard_seat= data_list[29] or '--' #硬座
        no_seat = data_list[26] or '--'  #无座
        table.add_row([
            train_number,
            from_station_name,
            to_station_name,
            start_time,
            arrive_time,
            time_duration,
            first_class_seat,
            second_class_seat,
            soft_sleeper,
            hard_sleeper,
            hard_seat,
            no_seat
                  ])
    print table
if __name__ == '__main__':
    Get_train_information()

0×02  Selenium模块简单介绍

之后的,咱们应该都要用Python中selenium模块,怎么说呢,这个东西,我感觉挺好用的唉
这里呢,我简单的说下
安装
pip install selenium
安装Firefox
http://ftp.mozilla.org/pub/firefox/releases/
安装FirefoxDriver,geckdriver
https://github.com/mozilla/geckodriver/releases
Chrome浏览器需要安装chromedriver,IE浏览器要安装IEdriver
driver的路径可以直接放在python路径下,我这里把driver放在了python的Scripts路径下,同时把script路径加入环境变量。
说几个简单用法..
访问页面并获取源码

#-*- coding: UTF-8 -*-
from selenium import webdriver
 
browser = webdriver.Firefox()
browser.get("http://www.baidu.com")
print browser.page_source
browser.close()

浏览器最大化

driver.maximize_window()

设置浏览器大小

driver.set_window_size(480, 800)

浏览器前进后退

driver.back()#浏览器后退
driver.forward()#浏览器前进

webdriver 提供了一系列的元素定位方法,常用的有以下几种:

id
name
class name
tag name
link text
partial link text
xpath
css selector
分别对应python webdriver 中的方法为:

find_element_by_id()
find_element_by_name()
find_element_by_class_name()
find_element_by_tag_name()
find_element_by_link_text()
find_element_by_partial_link_text()
find_element_by_xpath()
find_element_by_css_selector()

就简单介绍到这,写的很不详细吧….
这里呢?你可以去看官方文档
http://selenium-python.readthedocs.io/index.html

0×03  打造属于自己的SupremeBOT

Supreme1994年秋季诞生于美国纽约曼哈顿,由James Jebbia创办。supreme的本意是最高、至上的。Supreme是结合滑板、Hip-hop等文化并以滑板为主的美国街头服饰品牌。

那什么,我要说一下,是supreme[su:ˈpri:m](苏普瑞姆),而不是super me
找人代购又太贵,价格炒的高的不要不要得,还有一堆BOT。。。。所以呢,我就有了个打造属于自己得SUPREMEBOT了,啊哈哈

在这里强调一下,人生苦短,我用Python

还是采用分步写,不看别的,只看思路,对对对
官网地址:http://www.supremenewyork.com/
首先,咱们先判断,商品是不是存在,并加入购物车,我拿supreme的配件做的演示,没有加判断SIZE的。。。我后面会贴上,很简单的,几行代码的事情,啊哈哈我定义了三个函数,第一个函数,是遍历商品关键字的,第二个函数是,判断商品是否存在的,第三个是main函数(主要是为了装X吧,啊哈哈)

我直接贴代码了。。

#-*- coding: UTF-8 -*-
import time
try: 
    from selenium import webdriver
except ImportError:
    print "Selenium module is not installed...Exiting program."
    exit(1)
     
def Check(keywords, text):
    for i in keywords:
        if i not in text:
            return False
    return True
 
def searchCommodity(browser, category, keywords, color):   
    print " Searching Commodity ..."
    browser.get("http://www.supremenewyork.com/shop/all/" + category)
    links = browser.find_elements_by_class_name("name-link")
    i = 0
    while i < len(links):
        if (Check(keywords, links[i].text) & (color in links[i+1].text)):
            links[i].click()
            print "[/i][/i][i][i] Commodity found"
            return True
        i += 2
    print "[/i][/i][i][i] Commodity not found"
    return False
def main():
    browser = webdriver.Firefox()
    browser.implicitly_wait(5)  #隐性等待5s,隐形等待是设置了一个最长等待时间,如果在规定时间内网页加载完成,则执行下一步,否则一直等到时间截止,然后执行下一步
    category = "accessories"  #商品类别
    keywords = []
    keywords.append("Gold Pendant")  #商品关键字
    color = "Gold"  #颜色
    if searchCommodity(browser, category, keywords, color) == False:
        return -1
    try:
        browser.find_element_by_name("commit").click()
    except:
         print "[/i][/i][i][i] Commodity sold out"
         return -1
if __name__ == '__main__':
    main()

额,这里加个商品描述吧,好看一点,啊哈哈

print "Description : " + links[i].text
print "Color : " + links[i+1].text

把商品加入了购物车了,就该买单了,是不是,啊哈哈,如果手动填,肯定会错过,所以selenium的功效来了

我又定义了函数fillForm,这里面的收货信息什么的都要改,改成你的信息

强调一下,我写的是美国官网,英国官网貌似在信息那多了个啥,忘了。。。。

#-*- coding: UTF-8 -*-
import time
try: 
    from selenium import webdriver
    from selenium.webdriver.support.ui import Select
except ImportError:
    print "Selenium module is not installed...Exiting program."
    exit(1)
     
def Check(keywords, text):
    for i in keywords:
        if i not in text:
            return False
    return True
 
def searchCommodity(browser, category, keywords, color):   
    print "[/i][/i][/i][i][i][i] Searching Commodity ..."
    browser.get("http://www.supremenewyork.com/shop/all/" + category)
    links = browser.find_elements_by_class_name("name-link")
    i = 0
    while i < len(links):
        if (Check(keywords, links[i].text) & (color in links[i+1].text)):
            print "Description : " + links[i].text
            print "Color : " + links[i+1].text
            links[i].click()
            print "[/i][/i][/i][/i][/i][/i][i][i][i] Commodity found"
            return True
        i += 2
    print "[/i][/i][/i][i][i][i] Commodity not found"
    return False
def fillForm(browser):
    billing_name = "xx xxx"
    email = "2014802836@qq.com"
    tel = "1111111111"
    billing_address = "xxxxxxxxx"
    billing_city = "Wauchula"
    billing_zip = "11111"
    billing_state = "FL"
    billing_country = "USA"
    nlb = "9999 999 999 9999"
    month = "02"
    year = "2018"
    rvv = "888"
    name = browser.find_element_by_name("order[billing_name]").send_keys(billing_name)
    email = browser.find_element_by_name("order[email]").send_keys(email)
    tel = browser.find_element_by_name("order[tel]").send_keys(tel)
    address = browser.find_element_by_name("order[billing_address]").send_keys(billing_address)
    address = browser.find_element_by_name("order[billing_city]").send_keys(billing_city)
    postCode = browser.find_element_by_name("order[billing_zip]").send_keys(billing_zip)
    billing_state = browser.find_element_by_name('order[billing_state]').send_keys(billing_state)
    countrySelect = Select(browser.find_element_by_name("order[billing_country]")).select_by_visible_text(billing_country)
    creditCardSelect = browser.find_element_by_name('credit_card[nlb]').send_keys(nlb)
    monthExpirationSelect = Select(browser.find_element_by_name("credit_card[month]")).select_by_visible_text(month)
    yearExpirationSelect = Select(browser.find_element_by_name("credit_card[year]")).select_by_visible_text(year)
    cvv = browser.find_element_by_name("credit_card[rvv]").send_keys(rvv)
    browser.find_element_by_class_name("terms").click()
def main():
    browser = webdriver.Firefox()
    browser.implicitly_wait(5)  #隐性等待5s,隐形等待是设置了一个最长等待时间,如果在规定时间内网页加载完成,则执行下一步,否则一直等到时间截止,然后执行下一步
    category = "accessories"  #商品类别
    keywords = []
    keywords.append("Gold Pendant")  #商品关键字
    color = "Gold"  #颜色
    if searchCommodity(browser, category, keywords, color) == False:
        return -1
    try:
        browser.find_element_by_name("commit").click()
    except:
         print "[/i][/i] Commodity sold out"[/i]
[i]         return -1[/i]
[i]    time.sleep(1)  #睡一秒,主要是怕报错[/i]
[i]    browser.find_element_by_class_name("checkout").click()[/i]
[i]    fillForm(browser)[/i]
[i]    browser.find_element_by_name("commit").click()[/i]
 
[i]if __name__ == '__main__':[/i]
[i]    main()

然后就这么好了,然后美化一下CODE吧

#-*- coding: UTF-8 -*-[/i]
[i]import time[/i]
[i]try:  [/i]
[i]    from selenium import webdriver[/i]
[i]    from selenium.webdriver.support.ui import Select[/i]
[i]except ImportError:[/i]
[i]    print "Selenium module is not installed...Exiting program."[/i]
[i]    exit(1)[/i]
 
[i]def Check(keywords, text):[/i]
[i]    for i in keywords:[/i]
[i]        if i not in text:[/i]
[i]            return False[/i]
[i]    return True[/i]
 
[i]def searchCommodity(browser, category, keywords, color):    [/i]
[i]    print "[i][i] Searching Commodity ..."
    browser.get("http://www.supremenewyork.com/shop/all/" + category)
    links = browser.find_elements_by_class_name("name-link")
    i = 0
    while i < len(links):
        if (Check(keywords, links[i].text) & (color in links[i+1].text)):
            print "Description : " + links[i].text
            print "Color : " + links[i+1].text
            links[i].click()
            print "[/i][/i][/i][/i][/i][/i][i][i][i] Commodity found"
            return True
        i += 2
    print "[/i][/i][/i][i][i][i] Commodity not found"
    return False
def fillForm(browser):
    billing_name = "xx xxx"
    email = "2014802836@qq.com"
    tel = "1111111111"
    billing_address = "xxxxxxxxx"
    billing_city = "Wauchula"
    billing_zip = "11111"
    billing_state = "FL"
    billing_country = "USA"
    nlb = "9999 999 999 9999"
    month = "02"
    year = "2018"
    rvv = "888"
    name = browser.find_element_by_name("order[billing_name]").send_keys(billing_name)
    email = browser.find_element_by_name("order[email]").send_keys(email)
    tel = browser.find_element_by_name("order[tel]").send_keys(tel)
    address = browser.find_element_by_name("order[billing_address]").send_keys(billing_address)
    address = browser.find_element_by_name("order[billing_city]").send_keys(billing_city)
    postCode = browser.find_element_by_name("order[billing_zip]").send_keys(billing_zip)
    billing_state = browser.find_element_by_name('order[billing_state]').send_keys(billing_state)
    countrySelect = Select(browser.find_element_by_name("order[billing_country]")).select_by_visible_text(billing_country)
    creditCardSelect = browser.find_element_by_name('credit_card[nlb]').send_keys(nlb)
    monthExpirationSelect = Select(browser.find_element_by_name("credit_card[month]")).select_by_visible_text(month)
    yearExpirationSelect = Select(browser.find_element_by_name("credit_card[year]")).select_by_visible_text(year)
    cvv = browser.find_element_by_name("credit_card[rvv]").send_keys(rvv)
    browser.find_element_by_class_name("terms").click()
def main():
    print " ____                                      ____   ___ _____ "
    print "/ ___| _   _ _ __  _ __ ___ _ __ ___   ___| __ ) / _ \_   _|"
    print "\___ \| | | | '_ \| '__/ _ \ '_ ` _ \ / _ \  _ \| | | || |"
    print " ___) | |_| | |_) | | |  __/ | | | | |  __/ |_) | |_| || |" 
    print "|____/ \__,_| .__/|_|  \___|_| |_| |_|\___|____/ \___/ |_|  "
    print "            |_|                                             "
    print "[/i][/i][/i][i][i][i] Opening Browser ..."
    browser = webdriver.Firefox()
    browser.implicitly_wait(5)  #隐性等待5s,隐形等待是设置了一个最长等待时间,如果在规定时间内网页加载完成,则执行下一步,否则一直等到时间截止,然后执行下一步
    print "[/i][/i][/i][i][i][i] Browser Opened"
    category = "accessories"  #商品类别
    keywords = []
    keywords.append("Gold Pendant")  #商品关键字
    color = "Gold"  #颜色
    if searchCommodity(browser, category, keywords, color) == False:
        return -1
    try:
        browser.find_element_by_name("commit").click()
    except:
         print "[/i][/i][/i][i][i][i] Commodity sold out"
         return -1
    time.sleep(1)  #睡一秒,主要是怕报错
    browser.find_element_by_class_name("checkout").click()
    print "Filling in the information"
    fillForm(browser)
    print "Filled..."
    print "Prepare to buy a bill....."
    browser.find_element_by_name("commit").click()
    print "Finshed,congratulations on your favorite things!!!!!"
 
if __name__ == '__main__':
    main()

差不多是这样,可以加个raw_input,这样就可以省去打开浏览器的时间了,对对对,最后放上完全版的,可以抢帽衫什么的

#-*- coding: UTF-8 -*-
import time
try: 
    from selenium import webdriver
    from selenium.webdriver.support.ui import Select
except ImportError:
    print "Selenium module is not installed...Exiting program."
    exit(1)
     
def Check(keywords, text):
    for i in keywords:
        if i not in text:
            return False
    return True
 
def searchCommodity(browser, category, keywords, color):   
    print "[/i][/i][/i][i][i][i] Searching Commodity ..."
    browser.get("http://www.supremenewyork.com/shop/all/" + category)
    links = browser.find_elements_by_class_name("name-link")
    i = 0
    while i < len(links):
        if (Check(keywords, links[i].text) & (color in links[i+1].text)):
            print "Description : " + links[i].text
            print "Color : " + links[i+1].text
            links[i].click()
            print "[/i][/i][/i][/i][/i][/i][i][i][i] Commodity found"
            return True
        i += 2
    print "[/i][/i][/i][i][i][i] Commodity not found"
    return False
def fillForm(browser):
    billing_name = "xx xxx"
    email = "2014802836@qq.com"
    tel = "1111111111"
    billing_address = "xxxxxxxxx"
    billing_city = "Wauchula"
    billing_zip = "11111"
    billing_state = "FL"
    billing_country = "USA"
    nlb = "9999 999 999 9999"
    month = "02"
    year = "2018"
    rvv = "888"
    name = browser.find_element_by_name("order[billing_name]").send_keys(billing_name)
    email = browser.find_element_by_name("order[email]").send_keys(email)
    tel = browser.find_element_by_name("order[tel]").send_keys(tel)
    address = browser.find_element_by_name("order[billing_address]").send_keys(billing_address)
    address = browser.find_element_by_name("order[billing_city]").send_keys(billing_city)
    postCode = browser.find_element_by_name("order[billing_zip]").send_keys(billing_zip)
    billing_state = browser.find_element_by_name('order[billing_state]').send_keys(billing_state)
    countrySelect = Select(browser.find_element_by_name("order[billing_country]")).select_by_visible_text(billing_country)
    creditCardSelect = browser.find_element_by_name('credit_card[nlb]').send_keys(nlb)
    monthExpirationSelect = Select(browser.find_element_by_name("credit_card[month]")).select_by_visible_text(month)
    yearExpirationSelect = Select(browser.find_element_by_name("credit_card[year]")).select_by_visible_text(year)
    cvv = browser.find_element_by_name("credit_card[rvv]").send_keys(rvv)
    browser.find_element_by_class_name("terms").click()
def main():
    print " ____                                      ____   ___ _____ "
    print "/ ___| _   _ _ __  _ __ ___ _ __ ___   ___| __ ) / _ \_   _|"
    print "\___ \| | | | '_ \| '__/ _ \ '_ ` _ \ / _ \  _ \| | | || |"
    print " ___) | |_| | |_) | | |  __/ | | | | |  __/ |_) | |_| || |" 
    print "|____/ \__,_| .__/|_|  \___|_| |_| |_|\___|____/ \___/ |_|  "
    print "            |_|                                             "
    print "[/i][/i][/i][i][i][i] Opening Browser ..."
    browser = webdriver.Firefox()
    browser.implicitly_wait(5)  #隐性等待5s,隐形等待是设置了一个最长等待时间,如果在规定时间内网页加载完成,则执行下一步,否则一直等到时间截止,然后执行下一步
    print "[/i][/i][/i][i][i][i] Browser Opened"
    raw_input('[/i][/i][/i][i][i][i]Press Enter to buy your Commodity')
    category = "pants"  #商品类别
    keywords = []
    keywords.append("Tiger Stripe Track Pant")  #商品关键字
    color = "Brown"  #颜色
    size = 'Medium'
    if searchCommodity(browser, category, keywords, color) == False:
        return -1
    if size != "":
        try:
            sizeSelect = Select(browser.find_element_by_id("s"))
            sizeSelect.select_by_visible_text(size)
        except:
            print "[/i][/i][/i][i][i][i] Commodity sold out......."
            return -1
    try:
        browser.find_element_by_name("commit").click()
    except:
         print "[/i][/i][/i][i][i][i] Commodity sold out"
         return -1
    time.sleep(1)  #睡一秒,主要是怕报错
    browser.find_element_by_class_name("checkout").click()
    print "Filling in the information"
    fillForm(browser)
    print "Filled..."
    print "Prepare to buy a bill....."
    browser.find_element_by_name("commit").click()
    print "Finshed,congratulations on your favorite things!!!!!"
 
if __name__ == '__main__':
    main()

在附上,今晚week2抢的成果吧,放个低调的网球算了,啊哈哈哈

祝各位新的一年,有supreme玩,还能追到自己的女神吧
最后,再说一句,人生苦短,我用Python!!

Python大法之从火车余票查询到打造抢Supreme神器的更多相关文章

  1. 12306火车票余票查询&Python实现邮件发送

    查询余票接口 打开12306官网,并进入余票查询页面,同时开启chrome浏览器F12控制台,以北京到上海为例,搜索2018年10月1日的余票信息,点击搜索按钮,可以在控制台发送了一条GET请求,请求 ...

  2. 火车车次查询-余票查询--Api接口

    1.来自12306的火车车次数据 使用12306网站的接口,查询余票.此接口采集自 这里. 全国火车站代号字典,下载 . 火车票余票查询 http://dynamic.12306.cn/otsquer ...

  3. 12306微信小程序上线 提供余票查询暂不支持购票

    12306微信小程序正式上线,如图所示,目前小程序提供余票查询.时刻表查询和正晚点查询三大功能,用户可在这里随时查看剩余车票以及列车时刻表.而且小程序支持用户添加行程,方便出行. 目前这款小程序还不支 ...

  4. java抓取12306火车余票信息

    最近在弄一个微信的公众帐号,涉及到火车票查询,之前用的网上找到的一个接口,但只能查到火车时刻表,12306又没有提供专门的查票的接口.今天突然想起自己直接去12306上查询,抓取查询返回的数据包,这样 ...

  5. php 通过API接口连接12306余票查询

    <?php header("content-type:text/html;charset='utf-8'"); //设置编码 echo "<meta cont ...

  6. 用webpy实现12306余票查询

    效果

  7. python打造12306余票实时监控

    # encoding=utf-8from Tkinter import *from ScrolledText import ScrolledTextimport urllib2import jsoni ...

  8. 学生管理系统-火车订票系统 c语言课程设计

    概要: C 语言课程设计一---学生管理系统 使使用 C 语言实现学生管理系统.系统实现对学生的基本信息和考试成绩的 管理.采用终端命令界面,作为系统的输入输出界面.采用文件作为信息存储介质. 功能描 ...

  9. Java爬取12306余票

    一.前言 今年国庆和中秋一起放,虽然很欢快,但是没有票了!!! 于是自己倒腾了一个查询余票的小程序. 二.准备工作 1.先打开12306的页面 2.然后右键检查,点network 3.再点一下1230 ...

随机推荐

  1. Codeforces 689C. Mike and Chocolate Thieves 二分

    C. Mike and Chocolate Thieves time limit per test:2 seconds memory limit per test:256 megabytes inpu ...

  2. Maven系列(十)发布自己的项目到 Maven 中央仓库

    Maven 发布自己的项目到 Maven 中央仓库 可能很多人都在用 Maven 仓库,但是如果要问怎么发布项目到中央仓库,估计很多人都不知道了,下面本篇文章带大家往中央仓库发布一个自己的 Maven ...

  3. js父子窗口传值以及当前页面在js前台如何获得url参数

    1.首先是父页面用window.open打开窗口 <%@ Page Language="C#" AutoEventWireup="true" CodeBe ...

  4. Windows操作系统下SVN无法上传*.o文件

    Windows操作系统下SVN无法上传*.o文件 2017年09月07日 10:14:49 yanlaifan 阅读数:834  摘自:https://blog.csdn.net/yanlaifan/ ...

  5. group by 和 distinct 的区别

    SELECT fs.card_id, fs. NAME, fs.email, fs.phone_num, fs.weixin_num, fs.permission, fs.open_id FROM f ...

  6. phoenix错误

    spark集群与phoenix进行数据请求时报错: 2018-06-15 17:13:30,158 INFO - Starting task 15.3 in stage 116.0 (TID 6832 ...

  7. java浅拷贝和深拷贝

    转:http://blog.csdn.net/u014727260/article/details/55003402 实现clone的2点: 1,clone方法是Object类的一个方法,所以任何一个 ...

  8. Bluebird-NodeJs的Promise

    Promise是异步代码实现控制流的一种方式.这一方式可以让你的代码干净.可读并且健壮. 比如,你用来异步处理文件事件的回调代码: fs.readFile('directory/file-to-rea ...

  9. PAT甲 1007. Maximum Subsequence Sum (25) 2016-09-09 22:56 41人阅读 评论(0) 收藏

    1007. Maximum Subsequence Sum (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Y ...

  10. hdu 1116 欧拉回路+并查集

    http://acm.hdu.edu.cn/showproblem.php?pid=1116 给你一些英文单词,判断所有单词能不能连成一串,类似成语接龙的意思.但是如果有多个重复的单词时,也必须满足这 ...