【问题标题】:Python Selenium - How can I get timedate inside of class?Python Selenium - 如何在课堂上获取时间日期?
【发布时间】:2022-09-23 02:28:20
【问题描述】:

这是 HTML 代码(LinkedIn 公司的工作页面,linkedin.com/yourcompany/jobs/)

<li id=\"ember623\" class=\"ember-view   jobs-search-results__list-item occludable-update p0 relative scaffold-layout__list-item

 [...]
   
                \">
              <time datetime=\"2022-09-20\">
                2 days ago

<!---->              </time>
            </li>
          
[...]
        
    </li>

我正在尝试使用 CLASS_NAME 访问 datetime 属性中的日期。

当我使用 XPATH 进行搜索时,它可以工作,并且我得到日期:\'2022-09-20\'

    A = browser.find_elements(By.XPATH,\"//time\")
    A[index].get_attribute(\"datetime\")

当我使用 class_name 搜索日期时,如下所示:

    A = browser.find_elements(By.CLASS_NAME,\"occludable-update\")
    A[index].get_attribute(\"datetime\")
    

它返回空。

但如果我写:

    A = browser.find_elements(By.CLASS_NAME,\"occludable-update\")
    A[index].text

我得到:\'2 天前\'

如何使用 By.CLASS_NAME 获取日期而不是文本?

    标签: python selenium web-scraping linkedin


    【解决方案1】:
    #if only 1 time element:
    browser.find_element(By.CLASS_NAME,"time").get_attribute("datetime") #return '2022-09-20'
    
    browser.find_element(By.CLASS_NAME,"time").text #return '2 days ago'
    
    #if only many time element:
    [i.get_attribute("datetime") for i in browser.find_elements(By.CLASS_NAME,"time").get_attribute("datetime")]
    #return ['2022-09-20', ...]
    
    
    [i.text for i in browser.find_elements(By.CLASS_NAME,"time").get_attribute("datetime")]
    # returns ['2 days ago', ...]
    

    【讨论】:

      猜你喜欢
      • 2014-02-09
      • 2022-07-12
      • 2020-08-25
      • 2021-06-28
      • 1970-01-01
      • 1970-01-01
      • 2020-06-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多