亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

python3.X 抓取火車票信息【修正版】

2020-02-15 21:56:11
字體:
來源:轉載
供稿:網友

代碼是在源代碼的基礎上進行的修改。希望對你有所幫助!

 實現后如圖所示:

首先我們需要抓取一些基礎的數據,各大火車站信息!

import urllibfrom urllib import requestimport reurl = 'https://kyfw.12306.cn/otn/resources/js/framework/station_name.js?station_version=1.8955'req = urllib.request.Request(url)r = urllib.request.urlopen(req).read().decode('utf-8')stations = re.findall(r'([/u4e00-/u9fa5]+)|([A-Z]+)', r)stations = dict(stations)stations = dict(zip(stations.keys(),stations.values()))

上面的代碼通過抓取,網頁信息,返回一個字典數據:

   stations = dict(zip(stations.keys(),stations.values()))#這行代碼在后面進行了建值互換,這里沒有進行過修改,這是原文的數據。

火車站的數據抓取成功,我們接下來抓取查詢數據,代碼如下:

from station import stationsimport warningsdef change_date(d1) :  if '.' in d1 :    d1 = d1.replace('.', '-')  if not d1.startswith('0') :    d1 = str(0) + d1  if '-' in d1[-2] :    d1 = d1[:-1] + '0' + d1[-1]  return d1def student_or_not(student) :  if 'y' in student[0].lower() :    return '0X00'  else :    return 'ADULT'f1 = input('請輸入開始城市:/n')f = stations[f1]t1 = input('請輸入目的城市:/n')t = stations[t1]d1 = input('請輸入出發時間:/n')d = str('2018-') + change_date(d1)student = input('是否為學生票,輸入(yes/no)')print('正在查詢' + f1 + '至' + t1 + '的列車,請聽聽音樂......')url = 'https://kyfw.12306.cn/otn/leftTicket/query?leftTicketDTO.train_date=hmmxlem&leftTicketDTO.from_station={f}&leftTicketDTO.to_station={t}&purpose_codes={student}'url = url.format(f=f, d=d, t=t, student=student_or_not(student))warnings.filterwarnings("ignore")

這里本人增加了兩個函數 change_date() 和 student_or_not()

 change_date() 這個函數對用戶輸入日期的行為進行了簡化,提高了用戶體驗,可以直接輸入比如7.3這樣的日期,其他的符號,我們可以自己進行擴展。

student_or_not() 這個函數的作用是判斷查詢的是普通票還是學生票

美化顯示,區分到站和出發站點的顏色,我們加入如下函數

def colored(color, text) :  table = {    'red'  : '/033[91m',    'green' : '/033[92m',    'nc'  : '/033[0m'  }  cv = table.get(color)  nc = table.get('nc')  return ''.join([cv, text, nc])

最后我們進行數據處理展示:

import requestsfrom get_urltrain import urlfrom prettytable import PrettyTablefrom color_set import coloredfrom station import stationsdef chair_lists(row_list) :  chair_list = []  for i in range(len(row_list) - 5, 21, -1) :    if row_list[i] != '' :      chair_list.append(row_list[i])    else :      chair_list.append('--')  return chair_listheaders = {  'user-agent' : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36'}r = requests.get(url, verify=False, headers=headers) # 請求網址1的內容rows = r.json()['data']['result'] # 將內容解析為列表trains = PrettyTable()trains.field_names = ["車次", "車站", "時間", "歷時", "商務座/特等座", "一等座", "二等座", "高級軟臥", "軟臥", "動臥", "硬臥 ", "軟座 ", "硬座", "無座",           "其他"]# 設置table的headernum = len(rows) # 打印列表的個數# station1 = dict([v, k] for k, v in stations.items())station_list = dict(zip(stations.values(), stations.keys()))for row in rows : # 列表循環  row_list = row.split('|')  chair_list = chair_lists(row_list)  trains.add_row([row_list[3],          '/n'.join([colored('green', station_list[row_list[6]]),                colored('red', station_list[row_list[7]])]),          '/n'.join([colored('green', row_list[8]),                colored('red', row_list[9])]),          row_list[10],          ] + chair_list)print('查詢結束,共有 %d 趟列車。' % num) # 列表個數也就是列車個數print(trains)            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲人成欧美中文字幕| 亚洲欧洲国产精品| 九九热最新视频//这里只有精品| 亚洲福利视频在线| 一夜七次郎国产精品亚洲| 亚洲一区国产精品| 亚洲精品乱码久久久久久按摩观| 亚洲视频网站在线观看| 91在线中文字幕| 中文字幕国产日韩| 性欧美暴力猛交69hd| 91国产一区在线| 亚洲日韩中文字幕| 97超级碰碰碰| 欧美电影免费观看高清| 国产狼人综合免费视频| 亚洲一区二区三区成人在线视频精品| 国产有码在线一区二区视频| 78色国产精品| 欧美美最猛性xxxxxx| 秋霞av国产精品一区| 欧美性猛交xxx| 日韩av在线精品| 亚洲片国产一区一级在线观看| 午夜精品一区二区三区av| 国模私拍一区二区三区| 国产日韩精品在线观看| 国产精品18久久久久久首页狼| 中文字幕亚洲色图| 国产精品视频中文字幕91| 91在线|亚洲| 国产精品高潮呻吟视频| 欧美黑人xxxⅹ高潮交| xvideos亚洲人网站| 97免费在线视频| 久久久久九九九九| 欧美精品在线极品| 欧美黑人极品猛少妇色xxxxx| 国产91在线高潮白浆在线观看| 亚洲精品ady| 91网在线免费观看| 国内精品久久影院| 午夜精品福利电影| 国产欧美一区二区三区四区| 亚洲另类图片色| 高清亚洲成在人网站天堂| 日韩av电影院| 91色在线视频| 国产亚洲视频在线| 中文字幕一精品亚洲无线一区| 97在线视频国产| 91精品国产色综合久久不卡98| 亚洲精品一区中文字幕乱码| 亚洲精品视频网上网址在线观看| 国产精品揄拍一区二区| 日韩精品一二三四区| 欧美成人久久久| 亚洲3p在线观看| 美女性感视频久久久| 夜夜狂射影院欧美极品| 国产丝袜一区视频在线观看| 色综合久久中文字幕综合网小说| 91在线观看免费观看| 一区二区在线免费视频| 日韩av一区在线| 日韩美女视频中文字幕| 日韩在线精品一区| 国产精品久久久久福利| 一区二区三区日韩在线| 日韩视频免费在线| 日本国产欧美一区二区三区| 日本道色综合久久影院| 97视频在线观看亚洲| 欧美激情亚洲综合一区| 亚洲国产小视频在线观看| 国产成+人+综合+亚洲欧美丁香花| 91网在线免费观看| 日韩免费精品视频| 深夜福利一区二区| 日韩欧美在线视频| 日韩国产欧美精品一区二区三区| 亚洲天堂免费观看| 岛国精品视频在线播放| 亚洲黄页网在线观看| 欧美有码在线观看| 欧美日韩ab片| 久久人91精品久久久久久不卡| 啪一啪鲁一鲁2019在线视频| 国产精品88a∨| 国产精品18久久久久久麻辣| 日韩中文字幕视频在线观看| 18性欧美xxxⅹ性满足| 亚洲香蕉成视频在线观看| 欧美激情乱人伦| 亚洲美女激情视频| 日本一欧美一欧美一亚洲视频| 视频一区视频二区国产精品| 亚洲精品一区二区三区婷婷月| 国产欧美日韩中文字幕| 成人激情视频在线观看| 亚洲成人中文字幕| 美女久久久久久久| 一区二区三区www| 国产一区二区在线免费| 91国产中文字幕| 日本免费一区二区三区视频观看| 亚洲日本成人女熟在线观看| 不卡中文字幕av| xx视频.9999.com| 一区二区亚洲精品国产| 狠狠色狠色综合曰曰| 日本不卡免费高清视频| 国产人妖伪娘一区91| 中文字幕精品久久| 亚洲人成网站999久久久综合| 精品视频在线播放色网色视频| 久久99久久99精品免观看粉嫩| 九九热最新视频//这里只有精品| 欧美黑人性生活视频| 久久综合88中文色鬼| 国产精品igao视频| 国产精品久久久久影院日本| 热久久99这里有精品| 日韩精品极品视频免费观看| 有码中文亚洲精品| 欧美黑人xxxⅹ高潮交| 欧美国产在线视频| 欧美成在线视频| 国产成一区二区| 中文字幕在线看视频国产欧美在线看完整| 91精品久久久久久久久久久久久久| 午夜精品www| 国产美女久久精品| 日韩精品中文字幕在线| 亚洲人成电影网站色xx| 日韩欧美极品在线观看| 欧美日韩国产区| 国产精品777| 中文字幕日韩免费视频| 欧美一区二区色| 国产精品免费小视频| 久久久久久久久国产| 国产成人综合一区二区三区| 精品二区三区线观看| 亚洲国模精品一区| 日韩欧美中文在线| 欧美日韩成人在线观看| 日韩精品一二三四区| 亚洲激情视频在线观看| 欧美成人精品不卡视频在线观看| 中文字幕一精品亚洲无线一区| 亚洲精品久久久久中文字幕欢迎你| 国产成人精品av在线| www.日本久久久久com.| 韩国v欧美v日本v亚洲| 日韩精品免费在线观看| 国产高清视频一区三区| 在线色欧美三级视频| 少妇av一区二区三区| 欧美最猛性xxxxx亚洲精品| 日韩专区中文字幕| 国产欧美日韩亚洲精品| 欧美成人手机在线| 国产成人精品av|