东航官网查询网页是
http://www.ceair.com/booking/sha-pek-201118_CNY.html
sha和pek 是国内机场的三字代码,分表是上海虹桥和北京,查看其他城市
210102 指2021年1月2日
CNY 是指支付方式用人民币
首先根据自己的系统下载 chrome的驱动:下载链接
主要代码如下:
from selenium import webdriver
import time
CHROME_DRIVER_PATH = './chromedriver_mac'
LOG_PATH = './chromedriver.log'
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
browser = webdriver.Chrome(executable_path=CHROME_DRIVER_PATH, options=chrome_options, service_args=['--verbose', LOG_PATH])
browser.get("http://www.ceair.com/booking/sha-pek-201118_CNY.html")
time.sleep(2)
elements=browser.find_elements_by_class_name("flight")
tickets = []
for el in elements:
title_list = el.find_element_by_class_name("title").text.replace(' ', '').split("|")
time_divs = el.find_elements_by_class_name("airport")
time_list = [t.text.replace('\n', '') for t in time_divs]
price_divs = el.find_element_by_class_name('detail').find_elements_by_tag_name("dd")
price_list = [p.text for p in price_divs]
tickets.append({
'company': title_list[0],
'code': title_list[1],
'direct': title_list[2],
'price_list': price_list,
'time_list': time_list,
})
print(tickets)