文档章节

爬虫爬取的网易云热门歌单

旺仔没馒头
 旺仔没馒头
发布于 2017/09/03 16:25
字数 554
阅读 31
收藏 0

介绍

从网上看到了一个java爬虫的教学,觉得挺有意思,就用来爬取一下网易云歌单,看一下什么歌单播放次数最多。利用Jsoup可以很轻松的对内容进行提取,有点类似于Jquery选择器的语法,利用HttpClient能够轻松的发送请求。然后就顺便把爬取的流行和民谣的歌单爬到了数据库,由于全部爬取数据量太大,所以只是爬取的前8页的歌单。
利用一下代码可以获取到网页内容的输入流。

HttpClient hc = new DefaultHttpClient();
HttpGet hg = new HttpGet(url_str);
HttpResponse response = hc.execute(hg);
HttpEntity entity = response.getEntity();
InputStream htm_in = entity.getContent();

通过自己定义的方法,将输入流转换为字符串

public static String InputStream2String(InputStream in, String encoding) throws Exception {
	StringBuffer out = new StringBuffer();
	InputStreamReader inread = new InputStreamReader(in, encoding);

	char[] b = new char[4096];
	for (int n; (n = inread.read(b)) != -1;) {
		out.append(new String(b, 0, n));
	}

	return out.toString();
}

得到了内容后便可以用Jsoup解析,通过浏览器自带的开发者工具,分析选取哪一个<div>里面的内容

Document doc = Jsoup.parse(htm_str);
Elements links = doc.select("div[class=g-bd]")
.select("div[class=g-wrap p-pl f-pr]")
.select("ul[class=m-cvrlst f-cb]")
.select("div[class=u-cover u-cover-1");

for (Element link : links) {
	Elements lin = link.select("a");
	String re_url = lin.attr("href");
	String re_title = lin.attr("title");
	System.out.print(re_title + "       ");
	System.out.print(re_url + "       ");
}

最后分享一下爬取的民谣和流行的歌单(都是播放排行前5的)。
流行
你知道思念一个人的滋味吗 点我
一首歌让你回到中学时代 点我
将回忆酿成烈酒入喉 从此不再挽留不再回头 点我
华语|那些温暖男声听起来总让人心疼 点我
2016年度最热新歌TOP100 点我
民谣
如果你想听民谣,可以从这些歌曲开始。 点我
孤独旅人配民谣。 点我
民谣是最安静的角落 点我
你若听过他的歌,此生便有了挂念 点我
华语女声丨若失意时 让这些歌给你一个拥抱 点我

© 著作权归作者所有

共有 人打赏支持
上一篇: java特训第一课
下一篇: 回形嵌套
旺仔没馒头
粉丝 2
博文 18
码字总数 13798
作品 0
济南
程序员
私信 提问
使用Puppeteer轻松爬取网易云音乐、QQ音乐的精品歌单

背景 最近在学习Puppeteer进行自动化操作,另一方面为了防止上班时间被打扰,是时候爬点歌单在上班的时候,用来抵抗外界的干扰了。 地址 项目完整代码地址:github.com/BingKui/WeC… 工具 ...

无聊小码农
07/30
0
0
我分析了2837首歌曲,做了个信息检索与信息抽取系统

写在前面 首先,作者受到 《我分析了42万字的歌词,为了搞清楚民谣歌手们在唱些什么》 这篇文章的影响,加上自己也是一个音乐爱好者,所以决定做一个网易云热门歌手歌词信息检索与信息抽取系...

牛奶芝麻
08/02
0
0
我跟网易云音乐爬虫不得不说的故事(文末附精彩评论)

这是一件单纯因为有趣,因为好玩做的事情~ 对技术实现不感兴趣的同学可以直接跳转到文末看精彩评论(谁能告诉我如何实现页面内跳转...)。 一、背景 干程序猿这行已经几年了,一直以来都忙于...

凌风郎少
2017/11/27
0
0
抓取网易云音乐歌曲热门评论生成词云

前言 网易云音乐一直是我向往的“神坛“,听音乐看到走心的评论的那一刻,高山流水。于是今天来抓取一下歌曲的热门评论。并做成词云来展示,看看相对于这首歌最让人有感受的评论内容是什么。...

郭璞
2017/04/26
0
0
爬取网易云音乐《化身孤岛的鲸》数据,我想告诉52赫兹的Alice,你不孤单

之前听到不才的《化身孤岛的鲸》,觉得是一首很温柔的歌,歌词很美很暖,反复听了很多次,底下也有很多很温暖,让人感动的评论,我很有兴趣想知道听歌的人的情感导向还有关注点大多是什么内容...

九日照林
05/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Windows 10 设置 Java 环境变量

首先你需要在我的电脑中打开,找到环境变量属性。 找到环境变量属性 找到环境变量属性后单击将会看到下面的设置界面。 在这个界面中设置高级系统设置。 环境变量 在弹出的界面中选择设置环境...

honeymose
29分钟前
1
0
用any-loader封装jQuery的XHR —— 随便写着玩系列

哎,都说没人用JQuery啦,叫你别写这个。 其实我也是好高骛远使用过npm上某个和某个很出名的XHR库,嗯,认识我的人都知道我喜欢喷JQ,以前天天喷,见面第一句,你还用JQ,赶紧丢了吧。但我也...

曾建凯
今天
5
0
聊聊storm的AggregateProcessor的execute及finishBatch方法

序 本文主要研究一下storm的AggregateProcessor的execute及finishBatch方法 实例 TridentTopology topology = new TridentTopology(); topology.newStream("spout1", spout......

go4it
今天
4
0
大数据教程(7.5)hadoop中内置rpc框架的使用教程

博主上一篇博客分享了hadoop客户端java API的使用,本章节带领小伙伴们一起来体验下hadoop的内置rpc框架。首先,由于hadoop的内置rpc框架的设计目的是为了内部的组件提供rpc访问的功能,并不...

em_aaron
今天
5
0
CentOS7+git+github创建Python开发环境

1.准备CentOS7 (1)下载VMware Workstation https://pan.baidu.com/s/1miFU8mk (2)下载CentOS7镜像 https://mirrors.aliyun.com/centos/ (3)安装CentOS7系统 http://blog.51cto.com/fengyuns......

枫叶云
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部