大家好,我使用 beautifulsoup 和 find_all 從網站中提取了一些 html 元素。因此,我收到了一個 bs4.elements.ResultSet 串列,如下所示:
[[<li class="WlSsj w9uVi">neu</li>],
[<li class="WlSsj w9uVi">neu</li>],
[<li class="WlSsj w9uVi">neu</li>, <li class="WlSsj">Terrasse</li>],
[<li class="WlSsj w9uVi">neu</li>,
<li class="WlSsj">Terrasse</li>,
<li class="WlSsj">Parkplatz</li>]
我現在想檢索 bs4 元素中的文本并保持相同的串列格式。我一直在嘗試創建兩個回圈。
fet = []
for feat in features_bs:
for fets in feat:
fet.append(fets.text)
features.append(fet)
第一個回圈查看原始串列 (features_bs) 中的每個串列 (feat)。第二個查看每個內部串列(feats)中的每個元素(fets),然后將元素更改為文本。我現在希望將文本附加回一個空串列(fet),但是我想在串列中保持與以前相同的格式。目前我只在第一個回圈中得到這樣的文本:
['neu',
'neu',
'neu',
'Terrasse',
'neu',
'Terrasse',
'Parkplatz']
但是我希望輸出是:
[['neu'],
['neu'],
['neu','Terrase'],
['neu'],
['Terrase']
['Parkplatz']]
我在這里先向您的幫助表示感謝。
uj5u.com熱心網友回復:
接近您的目標 - 但缺少一份臨時清單:
fet = []
for feat in features_bs:
el = []
for fets in feat:
el.append(fets.text)
fet.append(el)
fet
輸出:
[['neu'], ['neu'], ['neu', 'Terrasse'], ['neu'], ['Terrasse'], ['Parkplatz']]
您還可以精簡您的流程并將其直接轉換為您預期的格式:
from bs4 import BeautifulSoup
html = '''
<ul>
<li >neu</li>
</ul>
<ul>
<li >neu</li>
</ul>
<ul>
<li >neu</li>, <li >Terrasse</li>
</ul>
<ul>
<li >neu</li>
</ul>
<ul>
<li >Terrasse</li>
</ul>
<ul>
<li >Parkplatz</li>
</ul>
'''
soup = BeautifulSoup(html)
data = []
for ul in soup.find_all('ul'):
el = []
for e in ul.find_all('li'):
el.append(e)
data.append(el)
data
輸出:
[['neu'], ['neu'], ['neu', 'Terrasse'], ['neu'], ['Terrasse'], ['Parkplatz']]
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/449697.html
上一篇:在Python中重復一個程序
下一篇:在R中使用組合函式時出現計算錯誤
