我在使用Selenium进行google自动搜索时遇到了一个问题。所以,我需要在google搜索中粘贴类似'JFK年度乘客2019'这样的内容,并找到答案。答案通常显示在页面的顶部这样。
我写了代码来做,但我不能使用它 因为错误(没有这样的元素异常)。
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.wait import WebDriverWait
def search(link):
driver = webdriver.Safari()
driver.get("http://www.google.com")
elem = driver.find_element_by_name("q")
elem.clear()
elem.send_keys(link)
elem.submit()
elem1 = driver.find_element_by_class_name('Z0LcW XcVN5d AZCkJd')
nyam = elem1.get_attribute("data-tts-text")
print(nyam)
driver.close()
search('JFK annual passengers 2019')
我想问题是我通过开始搜索打开的新的google页面没有看清。
请大家帮忙
两件事情。首先,当你找到一个有2个或更多类的元素时,用 find_element_by_css_selector
而不是. 其次,你需要在搜索结果页面加载其DOM之前等待。你可以使用python的 time
库的。
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.wait import WebDriverWait
import time
def search(link):
driver = webdriver.Safari()
driver.get("http://www.google.com")
elem = driver.find_element_by_name("q")
elem.clear()
elem.send_keys(link)
elem.submit()
time.sleep(3) # wait 3 seconds
elem1 = driver.find_element_by_css_selector('.Z0LcW.XcVN5d.AZCkJd')
nyam = elem1.get_attribute("data-tts-text")
print(nyam)
driver.close()
search('JFK annual passengers 2019')