Python - 美丽的汤 - 删除标签

问题描述:

我已经使用Beautiful Soup提取了以下基于Web的数据作为列表。在原始网站是数字表:Python - 美丽的汤 - 删除标签

[<td class="right">113</td>, <td class="right"> 
89 </td>, <td class="right last"> 
<b>117</b> </td>, <td class="right">113</td>, <td class="right"> 
85 </td>, <td class="right last"> 
<b>114</b> </td>, <td class="right">100</td>, <td class="right"> 
56 </td>, <td class="right last"> 
<b>84</b> </td>] 

什么是从这个数据来创建数字列表的最有效方法是什么?理想情况下,我想使用美丽的汤提取标签,但我无法弄清楚如何从文档中做到这一点。

我的原汤的代码是:

print soup.find_all('td', 'right')    #printing this produces the above data 

numbers_data = []        #my attempt to extract tags 
for e in soup.find_all('td', 'right'): 
    numbers_data.append(e.extract()) 

print numbers_data 

都返回相同的列表。

numbers_data = [int(e.text) for e in soup.find_all('td', 'right')] 

print numbers_data 
+0

是不是'e.string'或'e.get_text()'而不是'e.text'? –

+1

@PeterDeGlopper - No. BeautifulSoup在节点上有一个文本属性。另外,如果你使用的是BeautifulSoup4 - 使用css语法选择器,更清洁 - '''soup.select('td.right')'' – DivinusVox

+0

它们看起来是一样的:'e = bs4。 BeautifulSoup('hi

c

');打印(e.text); print(e.get_text())' – prgao