如何删除Python中所有列表项的一部分?

2024-06-16 11:13:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python相当陌生,但我想我应该尝试一下HTML解析。我已经有了一个条目列表,但我不知道如何让它们成为我想要的。我的意见是

['<li><span class=\'typeno\'>1.</span><a href="#m3_ds_real_save_file">M3 DS Real Save File</a></li>', '<li><span class=\'typeno\'>2.</span><a href="#incomplete_mario_kart_wii_course">Incomplete Mario Kart Wii Course</a></li>', '<li><span class=\'typeno\'>3.</span><a href="#shared_library_link_file">Shared Library Link File</a></li>', '<li><span class=\'typeno\'>4.</span><a href="#hacha_split_archive_file">Hacha Split Archive File</a></li>']

我希望我的输出是

1. M3 DS Real Save File 2. Incomplete Mario Kart Wii Course 3. Shared Library Link File 4. Hacha Split Archive File

我的问题是,我找不到一种方法来执行regex或类似的操作,以我想要的方式影响HTML,同时也影响列表中的每个项目。还应该注意的是,这些条目会发生变化,因此我无法硬编码这些变化。我该怎么做?蒂亚


Tags: 列表savehtmlds条目lirealclass
1条回答
网友
1楼 · 发布于 2024-06-16 11:13:01

如前所述,您将需要^{}

from bs4 import BeautifulSoup

data = ['<li><span class=\'typeno\'>1.</span><a href="#m3_ds_real_save_file">M3 DS Real Save File</a></li>', '<li><span class=\'typeno\'>2.</span><a href="#incomplete_mario_kart_wii_course">Incomplete Mario Kart Wii Course</a></li>', '<li><span class=\'typeno\'>3.</span><a href="#shared_library_link_file">Shared Library Link File</a></li>', '<li><span class=\'typeno\'>4.</span><a href="#hacha_split_archive_file">Hacha Split Archive File</a></li>']
html =  ''.join([str(elem) for elem in data]) # turn data into a single html string for BeautifulSoup

soup = BeautifulSoup(html, 'html.parser')
result = [i.text.strip() for i in soup.find_all("li")]

输出result

['1.M3 DS Real Save File', '2.Incomplete Mario Kart Wii Course', '3.Shared Library Link File', '4.Hacha Split Archive File']

如果html中没有其他列表,则可以直接将html输入到BeautifulSoup(html, 'html.parser')中,而无需任何预处理

相关问题 更多 >