抓取网页音频(爬虫为怪咖系列第三期离第三期的时间有点长长)

优采云 发布时间: 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 时,那么我的爬虫只会爬行,并等待域名下以 2​​015-01-16 日期为.html 结尾的链接。

  开始()

  表示启动爬虫,输入参数5表示抓取5层(深度为5),这个深度5怎么理解,只添加一个seed时,抓取seed链接作为第一层,并解析*敏*感*词*链接页面,根据规则过滤,将想要的链接保存到要爬取的记录中,然后第二层抓取第一层存储的记录,分析保存新的记录,以此类推.

  网页云音乐页面分析:

  我们来看看网易云音乐的下一首歌曲页面链接:#/album?id=2884361。观察这个url,发现是一个查询站。查询id可以得到不同的歌曲,这样我们就可以遍历整个网易云音乐。提取出与上述网址类似的网页后,即可获取网易云音乐的所有歌曲。

  这时候就遇到了第二个问题,获取歌曲页面后如何获取歌曲的真实地址,我们通过抓包分析得到网易云音乐有一个api接口可以获取歌曲的真实地址歌曲,api地址:,这个接口有几个参数:

  然后访问api得到一段json,里面收录

了现有歌曲的几个版本的音频源地址。至于如何抓取和分析到这个地址的地址,接下来的教程会提供给大家。

  更别说这么多了。在代码上,所有的核心代码都做了注释。整个爬虫的思路是这样的:

  

  网络爬虫源代码

  附上Github地址:。欢迎关注极客科普,学习关注有趣的小技巧。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线