Beautiful soup- 删除 HTML 标签时遇到问题

Beautiful soup- trouble removing HTML tags

我是编码新手,但这会变得很明显。我正在尝试从网页中提取一些文本。

am = requests.get(url)

soup = BeautifulSoup(am.content, 'html.parser')

songs = soup.findAll("div", {"class": "songs-list-row__song-name"}, text=True)[0].string

我想在此网页上隔离 4 个文本实例。此代码一次只输出一个,具体取决于我在 [].string 括号中输入的数字。如何将其输出为包含所有四个实例的列表?

谢谢。

-我

只需遍历 ResultSet 例如 list comprehension:

songs = [e.text for e in soup.find_all("div", {"class": "songs-list-row__song-name"}, text=True)]

注意: 在较新的代码中使用 find_all() 而不是旧语法 findAll()

例子

from bs4 import BeautifulSoup

html='''
<div class="songs-list-row__song-name">song 1</div>
<div class="songs-list-row__song-name">song 2</div>
<div class="songs-list-row__song-name">song 3</div>
<div class="songs-list-row__song-name">song 4</div>
'''

soup = BeautifulSoup(html, 'html.parser')

songs = [e.text for e in soup.find_all("div", {"class": "songs-list-row__song-name"}, text=True)]

print(songs)

输出

['song 1', 'song 2', 'song 3', 'song 4']