目前我在 python 中有一个名为“urls”的 500 个 url 列表,这些 url 导致歌词,我想知道如何从相应的 url 中抓取每首歌曲的歌词。我假设我必须用 BeautifulSoup 创建一个 for 循环,但我不确定如何处理它。下面显示了我如何从 csv 中获取 url 列表。
path = os.path.join('c:' + os.sep, 'Users', '....', 'Downloads', 'dataset_6.csv')
data = pd.read_csv(path, header = 0)
data.columns = data.columns.str.replace(' ', '')
urls = list(data.lyricsurl)
print(urls)
这是列表中的第一项以及其他所有 url 的样子:
['https://www.azlyrics.com/lyrics/natkingcole/sweetlorraine.html', '...', '...']
这是html文档中歌词所属的类
class="col-xs-12 col-lg-8 text-center"
有什么想法吗?
答案 0 :(得分:0)
此示例将遍历列表中的所有网址并打印歌词:
import requests
from bs4 import BeautifulSoup
urls = [
"https://www.azlyrics.com/lyrics/natkingcole/sweetlorraine.html",
# ...more urls
]
for url in urls:
soup = BeautifulSoup(requests.get(url).content, "html.parser")
lyric = soup.select_one(".ringtone ~ div").get_text(
strip=True, separator="\n"
)
print(lyric)
打印:
Just found joy
I'm as happy as a baby boy, baby boy
With another brand new choo-choo choy
When I met my sweet Lorraine, Lorraine, Lorraine.
...and so on.