最开始试了好多方法把webdriver放到path路径下但是都有问题,找不到他们所说的什么:/user/bin。真的不知道他们是怎么弄的。所以,找了好多方法。最后自己将路径获取就行了:


path = "chromedriver的路径"
driver = webdriver.Chrome(path)

 

ps:  如何获取chromedriver的路径:下载chromedriver后在finder中打开,在将文件拖到终端,就可出现路径,然后直接复制路径,替换到     chromedriver的路径     这几个字的位子就可以了。

下面是我爬取“去哪儿”的代码:

from selenium import webdriver
#实现等待需要用到下面 3 个库,By 库用于指定 HTML 文件中 DOM 标签元素(添加和删除节点(HTML 元素)), 
#WebDriverWait 库用于等待网页加载完成,
#expected_conditions 库(下面用 as EC 给这个库 起了个简称)用于指定等待网页加载结束的条件。
from selenium.webdrivermon.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

dep = '上海'
query='丽江'
path = "/Users/zhangxin/Downloads/DataAT/chromedriver.exe"
driver = webdriver.Chrome(path)
driver.get("https://fh.dujia.qunar/?tf=package")

#访问二级标签
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "depCity")))


driver.find_element_by_xpath("//*[@id='depCity']").clear()
driver.find_element_by_xpath("//*[@id='depCity']").send_keys(dep)
driver.find_element_by_xpath("//*[@id='arrCity']").send_keys(query)
driver.find_element_by_xpath("/html/body/div[2]/div[1]/div[2]/div[3]/div/div[2]/div/a").click()

import time

#循环10次
for _ in range(2):
    time.sleep(20)
    routes = driver.find_elements_by_xpath('//*[@id="list"]/div/div[2]/h4/a')
    #//*[@id="list"]/div[1]/div[2]/h4/a
    #//*[@id="list"]/div[2]/div[2]/h4/a
    #//*[@id="list"]/div[1]/div[2]/h4/a
    for route in routes:
        print(route.text)
        
    #抓取下一页
    driver.find_element_by_xpath('//*[@id="hozFilter"]/div/div[3]/a[2]').click()

#---------------下面是结果----------------

Out:

上海-丽江3天2晚 | 入住丽江法文苑客栈 + 首都航空往返机票
上海-丽江3天2晚 | 入住丽江·晴初阁客栈 + 首都航空往返机票
上海-丽江3天2晚 | 入住丽江赛拉维客栈 + 首都航空往返机票
上海-丽江3天2晚 | 入住丽江云上公馆 + 首都航空往返机票
上海-丽江3天2晚 | 入住丽江翁家大院 + 首都航空往返机票
上海-丽江3天2晚 | 入住丽江山水桃源客栈 + 首都航空往返机票
上海-丽江3天2晚 | 入住丽江灼华苑精品客栈 + 首都航空往返机票
上海-丽江3天2晚 | 入住丽江丽人居客栈 + 首都航空往返机票
上海-丽江3天2晚 | 入住丽江李家院精品客栈 + 首都航空往返机票
上海-丽江3天2晚 | 入住丽江法文苑客栈 + 首都航空/吉祥航空往返机票
上海-丽江3天2晚 | 入住丽江文华廿六度假民宿 + 首都航空/吉祥航空往返机票
上海-丽江3天2晚 | 入住丽江花间堂·听荷院 + 首都航空/吉祥航空往返机票
上海-丽江3天2晚 | 入住丽江花间堂·青尘院 + 首都航空/吉祥航空往返机票
上海-丽江3天2晚 | 入住丽江海映朗廷假日大酒店 + 首都航空/吉祥航空往返机票
上海-丽江3天2晚 | 入住丽江悦榕庄 + 首都航空/吉祥航空往返机票
上海-丽江3天2晚 | 入住丽江大研安缦酒店 + 首都航空/吉祥航空往返机票
上海-丽江3天2晚 | 入住丽江圆明商务酒店 + 首都航空/吉祥航空往返机票
上海-丽江3天2晚 | 入住丽江锦汇酒店 + 首都航空/吉祥航空往返机票
上海-丽江3天2晚 | 入住丽江兰燕宾馆 + 首都航空/吉祥航空往返机票
上海-丽江3天2晚 | 入住丽江凯鑫商务酒店 + 首都航空/吉祥航空往返机票

更多推荐

在macbook pro下如何使用selenium模拟浏览器爬取数据(包含webdriver放到path路径下的方法)