我试图获取此页歌曲的歌词
https://www.musica.com/letras.asp?letra=1986778
我之前从未使用过bs4所以我不知道如何面对这个问题,我尝试用特定字体查找所有表格,所有段落或所有文本,但我无法让它工作(我我不会写一段能做我想做的事情。
关闭主题:这就是我获取歌曲的网址的方式。
此网址包含该艺术家所有歌曲的列表 https://www.musica.com/letras.asp?letras=22997
我的代码是:
import requests
from bs4 import BeautifulSoup
import re
url = 'https://www.musica.com/letras.asp?letras=22997'
page = requests.get(url)
soup = BeautifulSoup(page.text, 'html.parser')
links = soup.find_all('a')
song_links = [link for x link links if ('>Letras de Massacre' in str(link)) ]
我认为这不是最优雅的剧本,我在这里遇到了同样的问题,我试图让链接找到包含它们的表格,但经过一些试验和错误后,我注意到所有的歌曲链接都说&# 39;> Letras de Massacre'在他们中间。
感谢您花时间阅读本文!
答案 0 :(得分:1)
所以你链接的网址有很多其他网址,这就是歌词所在的位置。您需要使用请求来获取每个请求。我用这个作为例子 https://www.musica.com/letras.asp?letra=1103460
现在你可以快速刮掉这样的歌词。
#assuming you already set the url
page = requests.get(url)
soup = BeautifulSoup(page.text, 'html.parser')
lyrics=soup.find_all('p')[0]
这将为您提供一个包含歌词的字符串,以及您需要解析的一些换行符和段落标记。应该很容易做到re或其他什么。