【问题标题】:Selenium python google address sidebar resultSelenium python google地址侧边栏结果
【发布时间】:2025-11-30 03:20:18
【问题描述】:

我是 selenium 新手,我想在侧边栏上抓取 google 地址搜索结果。

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

我尝试使用检查来获取该部分的元素,但我对 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)

【问题讨论】:

    标签: python html selenium google-search


    【解决方案1】:

    如果你尝试搜索,似乎

    main = driver.find_element_by_id('main')
    

    您的代码会返回页面上写的所有内容。 我个人喜欢通过他们的 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, 马来西亚

    【讨论】:

    • 谢谢!这也是一个不错的选择!我找到了另一种使用 class_name 的方法,将在下面发布答案:D
    • 是的,你可以通过很多东西来搜索元素,类名也是其中之一。祝你编码好运
    【解决方案2】:

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

    如果我们在 html 元素中展开该部分,我们可以在 class= 'LrzXr' 下看到地址。

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

    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)
    

    【讨论】: