提问者:小点点

从使用特定模式命名的div标记获取文本


我在Spotify上做了一个搜索歌曲歌词的应用。 该应用程序从Genius.com获取所有歌词。 问题是他们已经改变了他们的网站,现在包含所有歌词的div标签被命名为一个奇怪的名字。。。 最近,它被命名为lyrics,但现在它是这样的:lyrics__container-SC-1YNBVZW-2 jgqsqn,我猜每个div标记都包含“lyrics__container”关键字和它更改后的字母。 我得到歌词的台词是这样的:

page = requests.get(url)
html = BeautifulSoup(page.text, 'html.parser')
lyrics = html.find('div', class_='lyrics').get_text()

有没有一种方法从div标记中获取文本,只需知道它是以“lyrics__container”开头的?


共1个答案

匿名用户

class_中使用正则表达式:

“与任何关键字参数一样,您可以传递class_一个字符串,一个正则表达式,一个函数或true:”https://www.crummy.com/software/beautifulsoup/bs4/doc/#searching-by-css-class

例如:

import re

lyrics = html.find('div', class_=re.compile(r'^Lyrics__Container')).get_text()