当前位置: 首页 > 科技观察

Python爬虫音频数据

时间:2023-03-12 07:51:28 科技观察

1:前言本次爬取的是喜马拉雅热门栏目下所有电台的各个频道的信息以及频道中各个音频数据的各种信息,然后将爬取到的数据保存到mongodb中以供后续使用。这次的数据量在70万条左右。音频资料包括音频下载地址、频道信息、介绍等,很多。昨天我迎来了人生中的第一次面试。对方是一家人工智能大数据公司。我准备在大二暑假实习。他们要求爬取音频数据,所以我来分析一下喜马拉雅的音频。数据一路下滑。目前还在等待三轮面试,不然会通知最终面试消息。(因为能得到一定的肯定,不管成功与否我都很开心)2:运行环境IDE:Pycharm2017Python3.6pymongo3.4.0requests2.14.2lxml3.7.2BeautifulSoup4.5.33:例子分析1.首先进入本次爬取的主页面http://www.ximalaya.com/dq/all/,可以看到每个页面有12个频道,每个频道下面有很多音频,还有某些频道中的许多页面。抓取方案:循环84个页面,抓取每个频道名称,图片链接,解析每个页面后将频道链接保存到mongodb。热门频道2.开启开发者模式,分析页面,快速获取所需数据所在位置。下面的代码实现了所有热门频道信息的爬取,并保存在mongodb中。分析通道3。下一步是获取每个通道中的所有音频数据。美国频道的链接是通过分析页面获取的。比如我们输入链接http://www.ximalaya.com/6565682/album/237771,分析页面结构。可以看出每个音频都有一个特定的ID,可以在一个div的属性中获取。使用split()和int()转换为单独的ID。频道页面分析4.然后点击一个音频链接,进入开发者模式,刷新页面点击XHR,再点击一个json链接,可以看到这个包含了这个音频的所有详细信息。音频页面分析5.以上只是分析了一个频道主页上的所有音频信息,但实际上该频道的音频链接有很多页面。分页6.所有代码完整代码地址github.com/rieuse/learnPython7。如果改成异步形式,可以更快一些,修改成下面这样即可。我试着每分钟多获取近100条数据。这个源代码也在github中。异步5:总结一下,这次抓取的数据量大概是70万左右。这些数据可以做很多研究,比如播放量排行、时间段排行、声道数等,以后会继续学习如何使用科学计算和绘图工具进行数据分析和清洁。