Python爬虫音频数据

开发 后端
本次爬取的是喜马拉雅的热门栏目下全部电台的每个频道的信息和频道中的每个音频数据的各种信息,然后把爬取的数据保存到mongodb以备后续使用。这次数据量在70万左右。音频数据包括音频下载地址,频道信息,简介等等,非常多。

一:前言

本次爬取的是喜马拉雅的热门栏目下全部电台的每个频道的信息和频道中的每个音频数据的各种信息,然后把爬取的数据保存到mongodb以备后续使用。这次数据量在70万左右。音频数据包括音频下载地址,频道信息,简介等等,非常多。

昨天进行了人生中***次面试,对方是一家人工智能大数据公司,我准备在这大二的暑假去实习,他们就要求有爬取过音频数据,所以我就来分析一下喜马拉雅的音频数据爬下来。目前我还在等待三面中,或者是通知最终面试消息。 (因为能得到一定肯定,不管成功与否都很开心)

二:运行环境

  • IDE:Pycharm 2017
  • Python3.6
  • pymongo 3.4.0
  • requests 2.14.2
  • lxml 3.7.2
  • BeautifulSoup 4.5.3

三:实例分析

1.首先进入这次爬取的主页面 http://www.ximalaya.com/dq/all/ ,可以看到每页12个频道,每个频道下面有很多的音频,有的频道中还有很多分页。抓取计划:循环84个页面,对每个页面解析后抓取每个频道的名称,图片链接,频道链接保存到mongodb。

 

热门频道

2.打开开发者模式,分析页面,很快就可以得到想要的数据的位置。下面的代码就实现了抓取全部热门频道的信息,就可以保存到mongodb中。 

   

 

分析频道

3.下面就是开始获取每个频道中的全部音频数据了,前面通过解析页面获取到了美国频道的链接。

比如我们进入 http://www.ximalaya.com/6565682/album/237771 这个链接后分析页面结构。可以看出每个音频都有特定的ID,这个ID可以在一个div中的属性中获取。使用split()和int()来转换为单独的ID。

 

频道页面分析

4.接着点击一个音频链接,进入开发者模式后刷新页面然后点击XHR,再点击一个json链接可以看到这个就包括这个音频的全部详细信息。

 

音频页面分析

5.上面只是对一个频道的主页面解析全部音频信息,但是实际上频道的音频链接是有很多分页的。 

 

 

  

 

 

 

分页

6.全部代码

完整代码地址 github.com/rieuse/learnPython 

 

 

7.如果改成异步的形式可以快一点,只需要修改成下面这样就行了。我试了每分钟要比普通的多获取近100条数据。这个源代码也在github中。 

 

 

 

异步

五:总结

这次抓取的数据量在70万左右,这些数据后续可以进行很多研究,比如播放量排行榜、时间区段排行、频道音频数量等等。后续我将继续学习使用科学计算和绘图工具来进行数据分析,清洗的工作。 

责任编辑:庞桂玉 来源: 马哥Linux运维
相关推荐

2022-10-25 08:00:00

Huggingfac开源库数据仓库

2021-02-22 11:05:04

Clubhouse音频数据安全

2017-08-22 17:30:14

Python爬虫

2019-05-15 15:57:15

Python数据分析爬虫

2019-11-20 12:03:42

Python数据爬虫

2017-06-14 15:20:43

Python爬虫BeautifulSo

2017-08-09 15:27:33

python爬虫开发工具

2020-04-27 09:25:16

Python爬虫库数据科学

2018-12-05 13:59:45

电影分析爬虫

2023-11-27 08:51:46

PythonRequests库

2023-11-29 10:16:24

ScrapyPython

2023-11-28 08:34:39

Python工具

2020-10-19 19:25:32

Python爬虫代码

2022-04-20 08:00:00

深度学习数据集Hub

2016-02-22 18:22:17

视频数据云平台华为

2010-10-26 08:54:52

BLOBOracle

2018-08-10 14:45:52

Python网络爬虫mongodb

2016-10-20 20:21:09

Python爬虫技巧

2017-06-16 21:00:02

Python爬虫

2019-06-18 10:49:41

Python技术web
点赞
收藏

51CTO技术栈公众号