这个部分我们爬取的网站地址为:https://www.8lrc.com/search
尝试在这个页面进行搜索后我们很容易发现**,搜素框输入的结果直接作为get请求的参数,键为‘key’**
那么就很简单了,我们通过在界面搜索框的回车事件绑定爬虫函数,将搜索框中的内容作为参数传给函数,之后将参数拼接到https://www.8lrc.com/search后面并发送get请求即可得到响应体
随后使用BeautifulSoup中的html解析器对响应体文本进行解析
接下来通过f12查看页面元素
我们会发现,查询到的每首歌曲的跳转信息都在一个类名为”tGequ“的a标签里
那么我们就可以使用findAll函数获得所有歌曲的a标签
def search(self, keyword):
self.play_index_now = -1 # 每次重新搜索都将当前播放序号设置为-1
urlbase = r’https://www.8lrc.com/search’ # 搜索的基础地址
params = {‘key’: keyword} # 封装搜索的参数
res_body = requests.get(urlbase, params) # 拼接url,发送请求
soup_body = BeautifulSoup(res_body.text, ‘html.parser’) # html解析获得响应文本
self.tags = soup_body.findAll(class_=‘tGequ’) # 得到查询结果
通过tag[‘href’]即可得到其中的href属性值
由于这是一个相对地址,只要在前面加上baseurl:https://www.8lrc.com即可得到对应歌曲的链接
获取歌曲音频资源及歌词
接着我们访问具体歌曲如https://www.8lrc.com/geci/1130167.htm,希望获得其歌