【问题标题】:Python : Extract HTML contentPython:提取 HTML 内容
【发布时间】:2015-01-25 08:12:37
【问题描述】:

有没有办法通过提取以下html,使用BeautifulSoup或任何库来获取“要提取的数据”内容

<div>
    <ul class="main class">
      <li>
        <p class="class_label">User Name</p>
        <p>"Data to be extracted"</p>
      </li>
 </ul>
</div>

提前感谢您的帮助! :)

【问题讨论】:

    标签: python beautifulsoup


    【解决方案1】:

    当然有多种选择。对于初学者,您可以使用class="class_label" 找到p 元素并获取next p sibling

    from bs4 import BeautifulSoup
    
    data = """
    <div>
        <ul class="main class">
          <li>
            <p class="class_label">User Name</p>
            <p>"Data to be extracted"</p>
          </li>
     </ul>
    </div>
    """
    
    soup = BeautifulSoup(data)
    print soup.find('p', class_='class_label').find_next_sibling('p').text
    

    或者,使用CSS selector

    soup.select('div ul.main li p.class_label + p')[0].text
    

    或者,依靠User Name 文本:

    soup.find(text='User Name').parent.find_next_sibling('p').text
    

    或者,依赖p 元素在li 标签内的位置:

    soup.select('div ul.main li p')[1].text
    

    【讨论】:

      猜你喜欢
      • 2020-04-17
      • 2015-01-04
      • 2013-09-11
      • 1970-01-01
      • 2016-09-09
      • 1970-01-01
      • 2022-07-15
      • 2021-01-14
      • 1970-01-01
      相关资源
      最近更新 更多