python网易云热歌榜歌曲信息爬取(iframe框架内数据爬取,src为空)

您所在的位置:网站首页 最新的热歌榜 python网易云热歌榜歌曲信息爬取(iframe框架内数据爬取,src为空)

python网易云热歌榜歌曲信息爬取(iframe框架内数据爬取,src为空)

2024-07-14 04:17| 来源: 网络整理| 查看: 265

为一线医护人员加油! 为武汉加油! 为中国加油! 为世界加油! 此爬虫是本人参考了了一位前辈的文章,并修改和优化了代码: 1.改为python3环境; 2.优化了抓取的歌曲时长中带一长串小数的问题; 3.优化了当作者为多个歌手时只能抓取一个歌手的问题; 环境:Ubuntu18.04、Python3.6.9、Google Chrome

python爬取网易云热歌榜歌曲信息(iframe框架内数据爬取,src为空) 思路分析

一、网易云热歌榜https://music.163.com/#/discover/toplist?id=3778678页面是采用嵌入内联框架的方式,若直接访问页面是访问不到iframe框架中歌曲信息数据的,也可用比较简单的方法selenium+chrome等工具进行实现。

二、内嵌的框架实际也是一个网页资源,我们找到它的链接,然后获取这一页面,就可以从中取数据。

需求分析

获取热歌榜上排名,歌名,时长,歌手,专辑,发行时间,其它备注信息 输出到icloud.log文件中

分析页面

打开chrome开发工具,打开热歌榜页面找到iframe元素,发现src为空,可以发现iframe中的内容是js生成的 iframe元素 因此,分析我们需要的api找到所需链接。选择Network,选择Doc,然后重新加载发现有两个文件。 分别在两个文件的response中CTRL+F搜索榜单上的 任意一首歌,发现在第二个文件中 冬眠 右键这个文件选择copy/copy link address获取内嵌框架的链接。 用此链接另外打开一个页面后发现又跳回原来的页面,因此我们在原来的网页中的歌曲信息的地方右击查看框架的源代码,然后CTRL+F搜索后发现歌曲信息数据是以json的格式存在textarea标签下 在这里插入图片描述 使用json在线格式化网站分析这些json数据 json格式化 获取成功 代码如下:

''' 网易云音乐热歌榜歌曲信息爬取 https://music.163.com/#/discover/toplist?id=377867 beautifulsoup的使用 环境python3.6.9 ''' import json import sys import time import requests from bs4 import BeautifulSoup headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'} def get_info(url)


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3