在BS4中提取嵌套数据

时间:2014-02-24 02:35:41

标签: python beautifulsoup

我有以下HTML文件,我想提取运行时和视图数据参数。我已经能够导航到主id = videouser类,但我不知道如何获得相关的文本..

vid_data = (soup('td', {'id':'videoUser'}))[0]

<td id="videoUser">
<div class="item" style="padding-left: 0;">
<span>Added by</span>
<a href="/user/glanceweb">glanceweb</a>
<a class="hint" hint="Send private message" href="#" onclick="return openPm('glanceweb')" overicon="iconMailOver">
<div class="icon iconMail di" style="margin-bottom:-1px"></div>
</a>
<span class="hint" hint="2013-04-01 01:07:00 UTC">10 months ago</span>
</div>
<div class="item"><span>Runtime:</span> 02:39</div>
<div class="item"><span>Views:</span> 284,397</div>
</td>

有谁知道如何在BS4中做到这一点..?

1 个答案:

答案 0 :(得分:1)

如果您要查找上述HTML打印的所有文本,请执行以下操作:

soup = BeautifulSoup(<your-html>)
div = soup.find_all('div', {'class':'item'})[0]
user = str(div.find_all('span')[0].string) + ' ' + str(div.find_all('a')[0].string) + ' ' + str(div.find_all('span')[1].string)
r_div = soup.find_all('div', {'class':'item'})[1]
runtime = r_div.get_text()
v_div = soup.find_all('div', {'class':'item'})[2]
views = v_div.get_text()

用户将拥有:

Added by glanceweb 10 months ago

运行时将具有:

Runtime: 02:39
然后

视图

Views: 284,397