我是編碼新手,但這會變得很明顯。我正在嘗試從網頁中提取一些文本。
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 括號中輸入的數字。如何將其作為串列輸出,包含所有四個實體?
謝謝。
-一世
uj5u.com熱心網友回復:
只需遍歷您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 >song 1</div>
<div >song 2</div>
<div >song 3</div>
<div >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']
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/427723.html
