【问题标题】:Getting text in paragraph by searching for text in bold tag通过搜索粗体标签中的文本来获取段落中的文本
【发布时间】:2021-09-13 21:57:06
【问题描述】:

我正在尝试从段落中获取文本,我目前正在使用 driver.find_element_by_xpath("//*[contains(text(), 'Definition')]").text

但是,问题是html格式如下:

<p>
   <b> Definition: </b>
"text that i also need to get"
</p>

目前,我的代码仅获取粗体标记中的文本。有没有办法使用粗体标签中的文本来搜索整个段落?我需要查看的部分中没有 id 或类,因此我无法通过这些进行搜索。

【问题讨论】:

    标签: python html selenium selenium-webdriver web-scraping


    【解决方案1】:

    返回什么?我不熟悉这个库,但如果返回标签和内部文本,那么您可能会将字符串定义为&lt;b&gt; Definition: &lt;/b&gt;。然后用同样的方法获取外层&lt;p&gt;元素。

    【讨论】:

      【解决方案2】:

      假设您已经定义了 bold_tag 元素(不是文本值,而是您自己感兴趣的特定元素),您可以试试这个:

      p_tag = bold_tag.find_element_by_xpath("./..") # go up a level to <p> parent
      print(p_tag.text)
      

      编辑:我重新阅读了您的 OP,看起来您确实定义了它,所以完整的代码如下所示:

      bold_tag = driver.find_element_by_xpath("//b[contains(text(), 'Definition:']")
      p_tag = bold_tag.find_element_by_xpath("./..") # go up a level to <p> parent
      print(p_tag.text)
      

      【讨论】:

        【解决方案3】:

        xPathResult = document.evaluate('//b[text()=" Definition: "]/parent::p', document);
        if (xPathResult) {
          p_tag_parent = xPathResult.iterateNext();
          console.log(p_tag_parent.innerText);
        
        }
        <p>
          <b> Definition: </b> "text that i also need to get"
        </p>

        您可以搜索具有定义的元素:然后获取父元素是 p。

        p_tag_parent_text = driver.find_element_by_xpath('//b[text()=" Definition: "]/parent::p').text;
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-02-03
          • 1970-01-01
          • 1970-01-01
          • 2020-05-19
          • 2015-09-06
          相关资源
          最近更新 更多