首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python:将列表中的bs4.element.ResultSet元素更改为文本

Python:将列表中的bs4.element.ResultSet元素更改为文本
EN

Stack Overflow用户
提问于 2022-03-24 13:01:48
回答 1查看 86关注 0票数 0

大家好,我用漂亮汤和find_all从网站上提取了一些html元素。因此,我收到了如下bs4.elements.ResultSet列表:

代码语言:javascript
运行
复制
[[<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元素中的文本,并保持相同的列表格式。我一直在尝试创建两个循环。

代码语言:javascript
运行
复制
fet = []
for feat in features_bs:
    for fets in feat:
        fet.append(fets.text)
    features.append(fet)

第一个循环查看原始列表(features_bs)中的每个列表(壮举)。第二部分查看每个内部列表(专长)中的每个元素(fets),然后将元素更改为文本。现在,我希望将文本添加到一个空列表(fet)中,但是我希望保持与以前相同的格式,列表中的列表也是如此。目前,我只得到第一个循环中的文本,如下所示:

代码语言:javascript
运行
复制
['neu',
 'neu',
 'neu',
'Terrasse',
 'neu',
'Terrasse',
 'Parkplatz']

不过,我希望产出如下:

代码语言:javascript
运行
复制
[['neu'],
['neu'],
['neu','Terrase'],
['neu'],
['Terrase']
['Parkplatz']]

谢谢你提前帮忙。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-24 13:33:30

接近你的目标-但有一个临时清单缺失:

代码语言:javascript
运行
复制
fet = []
for feat in features_bs:
    el = []
    for fets in feat:
        el.append(fets.text)
    fet.append(el)
fet

输出:

代码语言:javascript
运行
复制
[['neu'], ['neu'], ['neu', 'Terrasse'], ['neu'], ['Terrasse'], ['Parkplatz']]

您还可以调整流程,并将其直接转换为预期的格式:

代码语言:javascript
运行
复制
from bs4 import BeautifulSoup

html = '''
<ul>
<li class="WlSsj w9uVi">neu</li>
</ul>
<ul>
<li class="WlSsj w9uVi">neu</li>
</ul>
<ul>
<li class="WlSsj w9uVi">neu</li>, <li class="WlSsj">Terrasse</li>
</ul>
<ul>
<li class="WlSsj w9uVi">neu</li>
</ul>
<ul>
<li class="WlSsj">Terrasse</li>
</ul>
<ul>
<li class="WlSsj">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

输出:

代码语言:javascript
运行
复制
[['neu'], ['neu'], ['neu', 'Terrasse'], ['neu'], ['Terrasse'], ['Parkplatz']]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71603001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档