全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 python论坛
1049 2
2017-12-16
想用selenium抓取去哪儿数据,结果死活定位不到xpath,以下是代码:
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)

结果如下:
QQ图片20171216220255.png QQ图片20171216220303.png
求各位大神解答



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2017-12-17 06:43:27
错误在routes这里
routes= driver.find_elements_by_xpath('/html/body/div[2]/div[2]/div[7]/div[2]/div')
find_element后面加个s
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-12-17 18:48:57
showmonki 发表于 2017-12-17 06:43
错误在routes这里
routes= driver.find_elements_by_xpath('/html/body/div[2]/div[2]/div[7]/div[2]/div' ...
貌似不是这个问题,而是我当时pc的网速和处理速度慢出现的,今天又试了下,好了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群