如何使用Beautiful Soup提取megalobiz站点动态ID对应的LRC歌词
实现方案
1. 安装依赖
首先确保你已经安装了Beautiful Soup和对应的解析器,Linux终端执行命令:pip3 install beautifulsoup4 lxml
如果提示权限不足,可在末尾添加--user参数安装到当前用户目录。
2. 核心提取逻辑
核心是用CSS选择器的前缀+后缀匹配规则定位歌词元素,避开中间动态的歌曲ID:
[id^="lrc_"]匹配id以lrc_开头的元素[id$="_lyrics"]匹配id以_lyrics结尾的元素
两者组合就能精准定位到存放LRC内容的span标签,不需要关心中间的动态数字。
3. 完整代码示例
from bs4 import BeautifulSoup # 假设你已经通过requests等库拿到了网页的HTML源码,存在html_content变量中 # 示例:html_content = requests.get("你的目标网页地址").text # 初始化解析器 soup = BeautifulSoup(html_content, "lxml") # 定位歌词span标签 lrc_span = soup.select_one('span[id^="lrc_"][id$="_lyrics"]') if not lrc_span: print("未找到歌词内容") exit() # 将<br>标签替换为换行符 for br_tag in lrc_span.find_all("br"): br_tag.replace_with("\n") # 提取纯文本LRC内容,去除首尾空白 lrc_content = lrc_span.get_text().strip() # 打印或保存结果 print(lrc_content) # 保存为LRC文件 with open("output.lrc", "w", encoding="utf-8") as f: f.write(lrc_content)
4. 运行说明
Linux环境下直接执行脚本即可,生成的output.lrc就是标准格式的歌词文件。如果需要批量处理,加个循环遍历网页地址即可。
内容的提问来源于stack exchange,提问作者WinEunuuchs2Unix
相关产品推荐
相关产品推荐

