如何用Python BeautifulSoup提取meta标签content属性中的URL?
提取Gaana歌曲Meta标签的Content属性值
嘿,我来帮你搞定这个问题!你已经成功定位到目标meta标签了,接下来提取content里的URL其实很简单,BeautifulSoup的标签对象提供了两种便捷的属性获取方式:
提取单个歌曲URL
针对你代码里的songs[0],直接用下面两种方式就能拿到content属性值:
# 方法1:用get()方法(推荐,属性不存在时会返回None,避免报错) song_url = songs[0].get('content') print(song_url) # 输出:https://gaana.com/song/o-saathi # 方法2:字典式访问(属性不存在时会抛出KeyError,适合确定属性一定存在的场景) song_url = songs[0]['content'] print(song_url)
批量提取所有歌曲URL
如果想一次性拿到列表里所有歌曲的URL,可以用循环遍历songs列表:
# 初始化空列表存储所有URL all_song_urls = [] for song_meta in songs: url = song_meta.get('content') if url: # 过滤掉空值,避免无效数据 all_song_urls.append(url) # 打印所有提取到的URL print(all_song_urls)
顺便修正你原代码的小问题
注意你原代码里的while循环部分,把变量url写成了字符串'url',这会导致请求错误的地址,修正后应该是:
url= 'https://gaana.com/playlist/gaana-dj-bollywood-top-50-1' res = requests.get(url) while(res.status_code!=200): try: res = requests.get(url) # 这里去掉引号,使用变量url except: pass
这样调整后,你的代码就能正常获取页面内容,再结合上面的属性提取方法,就能拿到所有需要的歌曲URL啦!
内容的提问来源于stack exchange,提问作者Abhishek Sharma
相关产品推荐
相关产品推荐

