2013-09-25 124 views
2

我已經使用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 

都返回相同的列表。

回答

1
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