爬蟲 爬取攜程的航班資訊

2021-09-30 16:54:54 字數 1567 閱讀 1195

功能介紹:輸入起點、終點、時間就能得到攜程上的航班資訊

**:

from prettytable import prettytable

import requests

import json

def xiecheng(dcity,acity,date):

date = date[0:4]+'-'+date[4:6]+'-'+date[6:8]

headers =

city =

url = ''

request_payload = ]}

# 這裡傳進去的引數必須為 json 格式

response = requests.post(url,data=json.dumps(request_payload),headers=headers).text

routelist = json.loads(response).get('data').get('routelist')

table=prettytable(["airline","flightnumber","departuredate",'arrivaldate','punctualityrate','lowestprice'])

if routelist:

for route in routelist:

info = {}

legs = route.get('legs')[0]

flight = legs.get('flight')

info['airline'] = flight.get('airlinename')

info['flightnumber'] = flight.get('flightnumber')

info['departuredate'] = flight.get('departuredate')[-8:-3]

info['arrivaldate'] = flight.get('arrivaldate')[-8:-3]

info['punctualityrate'] = flight.get('punctualityrate')

info['lowestprice'] = legs.get('characteristic').get('lowestprice')

table.add_row(info.values())

print(dcity,'------->',acity,date)

print(table)

else:

print('失敗')

if __name__ == "__main__":

dcity = input('請輸入起點: ')

acity = input('請輸入終點: ')

date = input('請輸入出行日期: ')

xiecheng(dcity,acity,date)

注釋:

傳入的時間引數應該是 8 位數的時間格式。

這裡沒有對傳入的地點和時間進行判斷,所以輸入的地點應該在 city 字典中,且時間不早於當前日期。

核對爬出來的資料都與網頁上的一樣,但不排除後期攜程在裡面投毒的可能性,比如去哪兒網。

Scrapy爬取攜程桂林問答

id int 11 not null auto increment comment 主鍵 question varchar 255 default null comment 問題的標題 full question varchar 255 default null comment 問題的詳情 keyw...

88 爬蟲爬取span資訊

我們在爬取網頁之後 有大量的無用的資訊 所以我們需要用正規表示式去篩選一下 我們先來試試普通爬取 var channel make chan bool func main func startspider start int,end int for i start i end i func spid...

python爬蟲(爬取導師資訊)

直譯器 我下的是3.8.2版本 pycharm 我下的是2019.3.3版本 注意 python安裝時要勾選 pycharm安裝時這四個全選上 檢查python是否安裝好可以在cmd命令中輸入python,出現下圖即可 2.爬取網頁資訊 以浙工大為例 codeing utf 8 time 2022 ...