Selenium python google 地址边栏结果

Selenium python google address sidebar result

我是 selenium 的新手,我想抓取边栏栏中的 google 地址搜索结果。

我知道如何使用 selenium 搜索 google 并登陆下面的页面,但我想要的是提取突出显示部分中的地址。

我尝试使用检查来获取该部分的元素,但我对 html 还很陌生。 下面附上我的代码以打印出结果的主要部分。我只确定这部分属于主要部分。
driver.get('http://www.google.com')
search = driver.find_element_by_name('q')
search.send_keys("saville residence")
search.send_keys(Keys.RETURN)
main = driver.find_element_by_id('main')
print(main.text)

似乎如果您尝试搜索

main = driver.find_element_by_id('main')

您的代码returns 页面上写的所有内容。 我个人喜欢通过他们的 xpath 查找元素。虽然这种方法肯定会降低您的代码的吸引力,但肯定也会使其更可靠。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options

driver = webdriver.Chrome("/Users/Povilas/Documents/GitHub/chromedriver")
driver.get('http://www.google.com')
search = driver.find_element_by_name('q')
search.send_keys("saville residence")
search.send_keys(Keys.RETURN)
main = driver.find_element_by_xpath('/html/body/div[6]/div[2]/div[9]/div[1]/div[3]/div/div[1]/div/div[1]/div/div[3]/div/div[2]/div/div/span[2]')
print(main.text)

在 运行 这段代码之后我的输出是: Saville Residence, Jalan Klang Lama, Taman Seputeh, 58100 Kuala Lumpur, Wilayah Persekutuan Kuala Lumpur, 马来西亚

我找到了一个使用 html 元素的替代解决方案: 1.'Ctrl+Shift+C'或点击红色圆圈图标 2. 点击网页中的目标部分。

如果我们在html元素中展开那个部分,我们可以看到class='LrzXr'.[=下的地址12=]

所以在代码中我们可以通过其 class 名称找到元素,如下所示:

driver.get('http://www.google.com')
search = driver.find_element_by_name('q')
search.send_keys("saville residence")
search.send_keys(Keys.RETURN)
main = driver.find_element(By.CLASS_NAME, 'LrzXr')
print(main.text)