【问题标题】:How to get text of innerHTML element?如何获取innerHTML元素的文本?
【发布时间】:2020-07-08 06:22:51
【问题描述】:

ProductNames 是使用此行时所需数据的数组:

ProductNames[3].find_element_by_css_selector('.aok-align-bottom').get_attribute("innerHTML")

我明白了:

<span class="a-icon-alt">4.3 out of 5 stars</span>

那么我怎样才能从 span 标签中仅提取准确的文本 4.3 颗星,满分 5 颗星

【问题讨论】:

  • .getText() 应该可以工作。
  • 用innerText代替innerHTML难道不能解决这个问题吗?

标签: python selenium web-scraping attributes getattribute


【解决方案1】:

你也应该在你的 css_selector 中包含这个 &gt;span,并在 &lt;span class="a-icon-alt"&gt;4.3 out of 5 stars&lt;/span&gt; 上搜索 get_attribute("innetHTML")

【讨论】:

    【解决方案2】:

    试试这样的:

    ProductNames[3].find_element_by_css_selector('.aok-align-bottom').get_attribute("innerHTML").text
    

    【讨论】:

    • 这个试过了,但是使用get_attribute后它变成了字符串,所以字符串没有属性文本
    【解决方案3】:

    您不会从innerHTML 中提取信息。而是提取 textWebElement 的任何 属性 的值。

    要提取文本_4.3 out of 5 stars_,您需要更深入地移动到&lt;span&gt;,您可以使用以下Locator Strategy

    ProductNames[3].find_element_by_css_selector('.aok-align-bottom>span.a-icon-alt').get_attribute("innerHTML")
    

    或者简单地说:

    ProductNames[3].find_element_by_css_selector('.aok-align-bottom>span').get_attribute("innerHTML")
    

    作为替代方案,您还可以使用 text 属性,如下所示:

    ProductNames[3].find_element_by_css_selector('.aok-align-bottom>span.a-icon-alt').text
    

    或者简单地说:

    ProductNames[3].find_element_by_css_selector('.aok-align-bottom>span').text
    

    参考文献

    您可以在以下位置找到一些相关讨论:

    【讨论】:

      猜你喜欢
      • 2013-01-27
      • 2013-09-18
      • 1970-01-01
      • 2019-10-05
      • 2011-12-02
      • 2011-06-07
      • 2019-03-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多