【发布时间】:2021-07-03 17:17:00
【问题描述】:
我正在尝试编写一个程序,该程序将从 Google 航班中收集不同地点和时间的数据。下面的代码能够清除并填写一个字符作为旅行的起点,但我无法让它填写整个字符串:
from selenium import webdriver
import time
def find_flights(origin, destination):
driver = webdriver.Chrome(executable_path="C:\WebDrivers\chromedriver 89\chromedriver.exe")
driver.get("https://www.google.com/travel/flights")
time.sleep(4)
from_form = driver.find_element_by_xpath('//*[@id="i6"]/div[1]/div/div/div[1]/div/div/input')
from_form.clear()
from_form.send_keys(origin)
find_flights("Los Angeles", "New York")
在这种情况下,原点的表单将只包含“L”而不是“Los Angeles”。我认为拆分字符串并在字母之间提供时间间隔可能会解决它,如下所示:
def find_flights(origin, destination):
driver = webdriver.Chrome(executable_path="C:\WebDrivers\chromedriver 89\chromedriver.exe")
driver.get("https://www.google.com/travel/flights")
time.sleep(4)
from_form = driver.find_element_by_xpath('//*[@id="i6"]/div[1]/div/div/div[1]/div/div/input')
from_form.clear()
origin_split = list(origin)
for letter in origin_split:
driver.find_element_by_xpath('//*[@id="i6"]/div[1]/div/div/div[1]/div/div/input').send_keys(letter)
time.sleep(0.5)
find_flights("Los Angeles", "New York")
这仍然只填写第一个字母。任何解决方案将不胜感激!
【问题讨论】:
-
太奇怪了,网站自己关闭了。
-
浏览器可以吗?
-
是的,哈哈。把它从功能中拿出来试试。但即使这样也只是发送一个键
-
它仍然只填写函数外的“L”。
-
我建议现在使用其他网站。
标签: python selenium selenium-webdriver web-scraping webdriver