Python:提取HTML内容

时间:2015-01-25 08:12:37

标签: python beautifulsoup

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

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

提前感谢您的帮助!! :)

1 个答案:

答案 0 :(得分:0)

肯定有多种选择。对于初学者,您可以找到p class="class_label"元素并获取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