因此,我正在尝试使用Selenium Web Driver和Python提取Google上某个单词的第一个自然搜索结果的URL。它是这样的:
from selenium import webdriver
chrome_options = webdriver.ChromeOptions()
driver = webdriver.Chrome(chrome_options=chrome_options)
sample =[]
news = ["a", "b", "c"]
for item in range(len(news)):
driver.get('https://www.google.com')
driver.find_element_by_xpath('search_bar_xpath').send_keys(news[item+1])
driver.find_element_by_xpath('search_button_xpath').click()
domain = driver.find_element_by_xpath('first_result_url_xpath').text
sample.append(domain)
driver.close()
嗯,它不会循环。你们能帮我解决这个问题吗?有时first_result_url_xpath会更改为另一个名称。如何告诉它搜索另一个而不担心第一次尝试?
答案 0 :(得分:0)
问题是,您在循环的第一个周期中关闭了驱动程序。您应该将其从循环中删除:
for item in range(len(news)):
driver.get('https://www.google.com')
driver.find_element_by_xpath(search_bar_xpath).send_keys(news[item+1])
driver.find_element_by_xpath(search_button_xpath).click()
domain = driver.find_element_by_xpath(first_result_url_xpath).text
sample.append(domain)
driver.close()
您可以使用以下方法获得多个结果:driver.findElements(By.xpath(first_result_url_xpath))
然后对其进行迭代以找到您要搜索的内容。