【问题标题】:Python/Selenium: How to grab value from the HTML?Python/Selenium:如何从 HTML 中获取价值?
【发布时间】:2022-01-14 06:10:15
【问题描述】:

我正在尝试从以下代码示例中获取一些值,但无法获得成功的答案。

使用在此link 中输入的随机商标的美国专利商标局网站。我想获取值为 2015 年 5 月 12 日的注册日期

    <div class="double table">
        <div class="row">
               <div class="key">US Serial Number:</div>
               <div class="value">85931937</div>
               <div class="key">Application Filing Date:</div>
               <div class="value">May 14, 2013</div>
        </div>
       
        <div class="row">
               <div class="key">US Registration Number:</div>
               <div class="value">4735834</div>
               <div class="key">Registration Date:</div>
               <div class="value">May 12, 2015</div>
        </div>

请注意,这将是代码示例中第四次调用类名 value 并嵌​​套在其他 div 类中。

这是我迄今为止尝试过的:

values = browser.find_elements(By.CLASS_NAME, 'value')
print(values[3])

但 values 返回一个空列表[]

请指教我做错了什么,提前谢谢。

【问题讨论】:

    标签: python selenium web-scraping


    【解决方案1】:

    要打印文本May 12, 2015,您可以使用以下任一Locator Strategies

    • 使用xpathtext属性:

      print(driver.find_element(By.XPATH, "//div[@class='key' and text()='Registration Date:']//following-sibling::div[1]").text)
      

    理想情况下,您需要为visibility_of_element_located() 诱导WebDriverWait,您可以使用以下任一Locator Strategies

    • 使用 XPATHget_attribute("innerHTML"):

      print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[@class='key' and text()='Registration Date:']//following-sibling::div[1]"))).get_attribute("innerHTML"))
      
    • 注意:您必须添加以下导入:

      from selenium.webdriver.support.ui import WebDriverWait
      from selenium.webdriver.common.by import By
      from selenium.webdriver.support import expected_conditions as EC
      

    您可以在How to retrieve the text of a WebElement using Selenium - Python找到相关讨论


    参考

    链接到有用的文档:

    【讨论】:

    • XPATH 和 getattribute("innerHTML") 成功了,谢谢!解决了。​​
    猜你喜欢
    • 2014-09-22
    • 2021-04-05
    • 2018-09-29
    • 2022-08-18
    • 2021-12-18
    • 1970-01-01
    • 2021-09-13
    • 1970-01-01
    • 2019-07-21
    相关资源
    最近更新 更多