亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

攜程網機票查詢腳本,無法正常運行,麻煩大家看看錯在哪里.....

攜程網機票查詢腳本,無法正常運行,麻煩大家看看錯在哪里.....

慕勒13948 2018-10-04 08:23:05
在知乎上看到了一個關于攜程網機票查詢的爬蟲程序 :https://zhuanlan.zhihu.com/p/33148780?嘗試著在本機運行時候,發現在運行airline_ticket.py文件的時候出現報錯:【代碼腳本】如下:import requests,json,osfrom docopt import docoptfrom prettytable import PrettyTablefrom colorama import init,Forefrom air_stations import stationsfromCity = input('Please input the city you want leave :')toCity = input('Please input the city you will arrive :')tripDate = input('Please input the date(Example:2018-10-29) :')init()class TrainsCollection:? header = '航空公司 航班 機場 時間 機票價格 機場建設費'.split()? def __init__(self,airline_tickets):? ? ?self.airline_tickets = airline_tickets@propertydef plains(self):? air_company = {"G5":"華夏航空","9C":"春秋航空","MU":"東方航空","NS":"河北航空","HU":"海南航空","HO":"吉祥航空","CZ":"南方航空","FM":"上海航空","ZH":"深圳航空","MF":"廈門航空","CA":"中國國航","KN":"中國聯航"}? for item in self.airline_tickets:? ? try:? ? ? strs = air_company[item['alc']]? ? except KeyError:? ? ? strs = item['alc']? ? airline_data = [? ? Fore.BLUE + strs + Fore.RESET,? ? Fore.BLUE + item['fn'] + Fore.RESET,? ? '\n'.join([Fore.YELLOW + item['dpbn'] + Fore.RESET,? ? Fore.CYAN + item['apbn'] + Fore.RESET]),? ?'\n'.join([Fore.YELLOW + item['dt'] + Fore.RESET,? ? Fore.CYAN + item['at'] + Fore.RESET]),? ? item['lp'],? ? item['tax'],? ? ]? ? yield airline_datadef pretty_print(self):? ?pt = PrettyTable()? ?pt._set_field_names(self.header)? ?for airline_data in self.plains:? ? pt.add_row(airline_data)? ?print(pt)def doit():? headers = {? ? "Cookie":"自定義",? ? "User-Agent": "自定義",? ?}? arguments = {? ?'from':fromCity,? ?'to':toCity,? ?'date':tripDate? ?}? DCity1 = stations[arguments['from']]? ACity1 = stations[arguments['to']]? DDate1 = arguments['date']? url=("http://flights.ctrip.com/domesticsearch/search/SearchFirstRouteFlights?DCity1={}&ACity1={}&SearchType=S&DDate1={}").format(DCity1,ACity1,DDate1)? try:? ? ?r = requests.get(url,headers = headers,verify=False)? except Exception as e:? ? ? print(repr(e))? ? ? print(url)? ? ? airline_tickets = r.json()['fis']? ? ? TrainsCollection(airline_tickets).pretty_print()if __name__ == '__main__':? doit()
查看完整描述

3 回答

?
鹹魚Yu

TA貢獻3條經驗 獲得超0個贊

r 放 try 外面定義試試

查看完整回答
反對 回復 2019-01-03
  • 3 回答
  • 0 關注
  • 1478 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號