抓取网页音频(爬虫为怪咖系列第三期离第三期的时间有点长长)
优采云 发布时间: 2021-12-26 08:12抓取网页音频(爬虫为怪咖系列第三期离第三期的时间有点长长)
本期是Freak系列的第三期。第二期由于客户论文重复问题,暂不对外公开源码。本期使用的语言是java,创建多线程,支持断点采集
,URL去重,广度优先+深度组合,如何利用已经构建好的轮子进行快速开发和加载。好了,吹完水,现在我们进入教程阶段。
爬虫
本期目标: 本期工具: 采集结果展示:
将采集
的结果写入excel
WebCollector 简介
WebCollector是一个JAVA爬虫框架,无需配置,方便二次开发。它提供了精简的API,只需少量代码即可实现功能强大的爬虫。WebCollector-Hadoop 是WebCollector 的Hadoop 版本,支持分布式爬取。而 2.x 版本中提供了 selenium,可以处理 javascript 生成的数据。我们先来看看WebCollector的核心架构图:
爬虫架构图
但是,我们使用WebCollector来编写爬虫没有那么麻烦,只需要使用集成爬虫框架中的BreadthCrawler类,重写visit方法即可。我们先看官网例子:
官网示例
程序说明:
访问()方法
在整个爬取过程中,只要抓取到一个复合页面,wc就会回调这个方法,传入一个收录
所有页面信息的页面对象。
添加*敏*感*词*()
添加*敏*感*词*,在爬虫启动前,*敏*感*词*链接会被添加到上面提到的爬取信息中并标记为未爬取。这个过程称为注入。
添加正则表达式
它是一个url正则表达式,用于过滤不需要爬取的链接,如.js、jpg、css等,或者指定爬取链接的规则。例如,当我使用常规规则:[0-9]+.html 时,那么我的爬虫只会爬行,并等待域名下以 2015-01-16 日期为.html 结尾的链接。
开始()
表示启动爬虫,输入参数5表示抓取5层(深度为5),这个深度5怎么理解,只添加一个seed时,抓取seed链接作为第一层,并解析*敏*感*词*链接页面,根据规则过滤,将想要的链接保存到要爬取的记录中,然后第二层抓取第一层存储的记录,分析保存新的记录,以此类推.
网页云音乐页面分析:
我们来看看网易云音乐的下一首歌曲页面链接:#/album?id=2884361。观察这个url,发现是一个查询站。查询id可以得到不同的歌曲,这样我们就可以遍历整个网易云音乐。提取出与上述网址类似的网页后,即可获取网易云音乐的所有歌曲。
这时候就遇到了第二个问题,获取歌曲页面后如何获取歌曲的真实地址,我们通过抓包分析得到网易云音乐有一个api接口可以获取歌曲的真实地址歌曲,api地址:,这个接口有几个参数:
然后访问api得到一段json,里面收录
了现有歌曲的几个版本的音频源地址。至于如何抓取和分析到这个地址的地址,接下来的教程会提供给大家。
更别说这么多了。在代码上,所有的核心代码都做了注释。整个爬虫的思路是这样的:
网络爬虫源代码
附上Github地址:。欢迎关注极客科普,学习关注有趣的小技巧。