爬虫爬取音乐url大全
爬虫爬取音乐url大全
今天无聊,想做个公众号点播歌曲功能,所以去某网站爬了303222首音乐,音乐有效率较高,爬了8个小时还没爬完,我就不爬了。
两个方法小功能有点不一样,所以写的有的显得多余,不管这么多了,能爬就行,其实我的很多代码都是通过分析原网站的内容,url来写的,所以你可能要去分析一下网站结构,url跳转情况,才看得懂。源代码如下:Music是个bean
public class MusicURl {
// 303222
// static QueryRunner runner = new QueryRunner(TransactionManagerUtil2.getSource());
// http://www.333ttt.com
// http://www.333ttt.com/up/?page=5 page 1-30000 一个page一首歌
// <a target="h" href="/up/up2103526739.html">耿耿星河-Mc神五精华版.mp3</a></td>public static void main(String[] args) throws Exception{int sum=0;for(int i=1;i<=30000;i++){String allStr=getURLContent1("http://www.333ttt.com/up/?page="+i,"utf-8");List<String>urls=getMatcherSubstrs(allStr,"<a[^>]*href=\"(?<href>[^\"]*)\"[^>]*>");for (String string : urls) {String str=getURLContent("http://www.333ttt.com/"+string,"utf-8");String url=getMatcherSubstrs(str,"http://[\\w/.]+\\.mp3",0);String name=getMatcherSubstrs(str,"<a[^<>]*?>\\s*(.*?)\\s*</a>",1);Music music=new Music(url, name);String json=JSON.toJSONString(music);BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File("d:/musicurl.txt"), true))); out.write(json+"\r\n"); out.close();sum++;System.out.println("第"+sum+"个:"+json);// String sql = "insert into musicurl values(null,?,?)";
// runner.update(sql, name, url);}}}/*** * @param url地址* @param 字符级* @return 网页源码*/public static String getURLContent(String urlStr,String charSet){StringBuilder sb=new StringBuilder();try {URL url=new URL(urlStr);BufferedReader reader=new BufferedReader(new InputStreamReader(url.openStream(),Charset.forName(charSet)));String temp="";while((temp=reader.readLine())!=null){if(temp.contains("音乐名称"))sb.append(temp+"\r\n");}} catch (IOException e) {e.printStackTrace();}return sb.toString();}public static String getURLContent1(String urlStr,String charSet){StringBuilder sb=new StringBuilder();try {URL url=new URL(urlStr);BufferedReader reader=new BufferedReader(new InputStreamReader(url.openStream(),Charset.forName(charSet)));String temp="";while((temp=reader.readLine())!=null){sb.append(temp+"\r\n");}} catch (IOException e) {e.printStackTrace();}return sb.toString();}/*** * @param 网页源码* @param 正则表达式* @return 超链接*/public static String getMatcherSubstrs(String str,String regexStr,int i){Pattern pattern=Pattern.compile(regexStr);Matcher matcher=pattern.matcher(str);String result = "";if(matcher.find()){result=matcher.group(i);}return result; }public static List<String> getMatcherSubstrs(String str,String regexStr){Pattern pattern=Pattern.compile(regexStr);Matcher matcher=pattern.matcher(str);List<String> result = new ArrayList<String>();while(matcher.find()){if(matcher.group(1).endsWith(".html")&&!result.contains(matcher.group(1)))result.add(matcher.group(1));}return result; }}
爬去的文件有30多M,上传到百度云实在太慢了,我还是上传到csdn,有兴趣的朋友可以下,我是实在不想收积分钱,可是csdn上传必须设置积分,哎呀!
爬虫爬取音乐url大全相关推荐
- java爬虫爬取音乐
以前写过一个音乐网站,我都是手动去下载音乐,并上传到网站,非常麻烦. 学习了HttpClinet和Jsoup 我决定完成一个简单的爬虫去收集音乐信息,并下载音乐: 先尝试做几个简单的小功能: 基本功能 ...
- python爬虫爬取音乐单曲_Python爬取qq音乐的过程实例
一.前言 qq music上的音乐还是不少的,有些时候想要下载好听的音乐,但有每次在网页下载都是烦人的登录什么的.于是,来了个qqmusic的爬虫.至少我觉得for循环爬虫,最核心的应该就是找到待爬元 ...
- python爬虫爬取音乐_利用python爬虫实现爬取网易云音乐热歌榜
利用python爬虫实现爬取网易云音乐热歌榜 发布时间:2020-11-09 16:12:28 来源:亿速云 阅读:102 作者:Leah 本篇文章给大家分享的是有关利用python爬虫实现爬取网易云 ...
- python爬取音乐歌曲大全_Python爬取网易云音乐歌单歌曲
# 从网易云音乐下载歌单歌曲 # 参考了这些网址 # https://blog.csdn.net/Ciiiiiing/article/details/62434438 # https://github ...
- python网易云_用python爬虫爬取网易云音乐
标签: 使用python爬虫爬取网易云音乐 需要使用的模块 只需要requests模块和os模块即可 开始工作 先去网易云音乐网页版找一下你想要听的歌曲点击进去.按键盘F12打开网页调试工具,点击Ne ...
- python爬虫爬取网易云音乐歌曲_Python网易云音乐爬虫进阶篇
image.png 年前写过一篇爬网易云音乐评论的文章,爬不了多久又回被封,所以爬下来那么点根本做不了什么分析,后面就再改了下,加入了多线程,一次性爬一个歌手最热门50首歌曲的评论,算是进阶版了- 思 ...
- python爬虫----爬取网易云音乐
使用python爬虫爬取网易云音乐 目录 使用python爬虫爬取网易云音乐 需要使用的模块 开始工作 运行结果 需要使用的模块 只需要requests模块和os模块即可 开始工作 先去网易云音乐网页 ...
- python网络爬虫网易云音乐下载_python网络爬虫爬取网易云音乐
#爬取网易云音乐 url="https://music.163.com/discover/toplist" #歌单连接地址 url2 = 'http://music.163.com ...
- java怎么爬网易云_Python爬虫爬取网易云的音乐
Python爬虫爬取网易云的音乐(学习笔记) 在开始之前,做一点小小的说明哈: 我只是一个python爬虫爱好者,如果本文有侵权,请联系我删除! 本文需要有简单的python爬虫基础,主要用到两个爬虫 ...
最新文章
- eclipse 导出项目到 android studio .so 库
- 使用matplotlib,同时在多个figure画图
- 去伪存真:因果约束下的图神经网络泛化
- MariaDB备份和恢复
- ListView的Adapter使用(绑定数据) 之 自定义每一项的布局去绑定数据(二)
- 手机1像素线粗_关于移动端一像素线的解决方案
- bootstrapValidator验证的remote中data属性里获取select一直是默认值
- 25@JSP_day08
- mysql创建的是拉丁_mysql 拉丁1 转换成 utf8
- 在ASP.NET MVC应用程序中随机获取一个字符串
- 【渝粤教育】广东开放大学 商务交际听说 形成性考核 (31)
- [转载] 3 idiots
- 十个超级简单的Python代码,拿走即用
- 在html中函数无效,无法在按钮点击HTML中调用JavaScript函数
- 会议室管理前端页面_多媒体会议室,会议系统,指挥控制中心,调度中心方案设计方案...
- hive优化:大表关联数据倾斜问题
- 结算机网络的tracert和route命令
- [转帖]实时协同设计CAD平台
- 10-3 查找王姓同学不学的课程的课程号
- 关于比尔盖茨的几点思考
热门文章
- mysql并列查询_MYSQL实现排名及查询指定用户排名功能(并列排名功能)实例代码...
- 【Python】SEBS模型计算蒸散发
- 全网比较火的爱心代码
- 蓝桥杯—切面条/大衍数列
- 《Python自然语言处理(第二版)-Steven Bird等》学习笔记:第10章 分析句子的意思
- CSDN官方markdown教程
- 快餐行业进入“黄金时代”,左手天堂右手地狱
- 一只喵的西行记-8 魔法猫堡
- 安装kubectl失败:error: unpacking of archive failed on file /usr/bin/kubectl: cpio: rename
- 微信公众号图文如何插入Excel表格