from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait #等待网页加载
from selenium.webdriver.support import expected_conditions as EC#用于指定网页加载结束的条件
from selenium.webdriver.common.by import By
import time
import random
driver = webdriver.Chrome()
dep_city= ['北京','上海']
arr_city=['杭州','苏州','济南']
for dep in dep_city:
#print(dep)
for arr in arr_city:
#print(arr)
driver.get('https://fh.dujia.qunar.com/?tf=package')
WebDriverWait(driver,10).until(EC.presence_of_element_located((By.ID,'depCity')))
#EC.present_of_element_located用于指定标志等待结束的DOM元素
driver.find_element_by_xpath('//*[@id="depCity"]').clear() #用xpath属性来定位
driver.find_element_by_xpath('//*[@id="depCity"]').send_keys(dep)
driver.find_element_by_xpath('//*[@id="arrCity"]').send_keys(arr)
driver.find_element_by_xpath('/html/body/div[2]/div[1]/div[2]/div[3]/div/div[2]/div/a').click()
print('dep:%s arr:%s'%(dep,arr))
time.sleep(random.uniform(2,4))
for i in range(10):
#WebDriverWait(driver,20).until(EC.presence_of_element_located((By.XPATH,'/html/body/div[2]/div[2]/div[7]/div[2]/div')))
routes= driver.find_element_by_xpath('/html/body/div[2]/div[2]/div[7]/div[2]/div')
for route in routes:
result={
'data':time.strftime('%Y-%m-%d',time.localtime()),
'dep':dep,
'arr':arr,
'result':route.text
}
print(result)
结果如下:
求各位大神解答