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
是不是'e.string'或'e.get_text()'而不是'e.text'? –
@PeterDeGlopper - No. BeautifulSoup在节点上有一个文本属性。另外,如果你使用的是BeautifulSoup4 - 使用css语法选择器,更清洁 - '''soup.select('td.right')'' – DivinusVox
它们看起来是一样的:'e = bs4。 BeautifulSoup('hi
c
');打印(e.text); print(e.get_text())' – prgao