前言
最近在学习狂神老师所讲的网络编程,get到了很对新技能。今天我跟大家分享一下如何使用URL爬取歌曲
1. URL
在WWW上,每一信息资源都有统一的且在网上唯一的地址,该地址就叫URL(Uniform Resource Locator,统一资源定位符),它是WWW的统一资源定位标志,就是指网络地址。它由四部分组成: 协议、主机、端口、路径.
举一个简单的例子: http://localhost:8080/helloworld/index.jsp?username=gs&password=123
http为该url的协议
localhost为该url的主机
8080位该主机的端口
index.jsp?username=gs&password=123为该url的完整路径
2.使用URL爬取想要的资源
package gs.lesson04;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
public class UrlDown {
public static void main(String[] args) {
//1.下载地址
URL url = null;
try {
url = new URL("http://m701.music.126.net/20200331152926/e340371950590da93ac96456e5cd88f6/jdyyaac/055a/020e/5458/208e69f5a75d98ab6cbac290f2b1f217.m4a");
//2. 连接到这个资源 HTTP
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
InputStream inputStream = connection.getInputStream();
FileOutputStream fos = new FileOutputStream("ni.mp4");
byte[] buff = new byte[1024];
int len;
while((len=inputStream.read(buff))!=1){
fos.write(buff,0,len);
}
fos.close();
inputStream.close();
connection.disconnect(); //断开连接
} catch (Exception e) {
System.out.println(e.getCause());
e.printStackTrace();
}
}
}
解析:
1.上面的代码我们先从第一步下载地址说起 url就是我们需要爬取的网络地址(这里以音乐做为实例)
打开一个音乐网站(如:网易云音乐)
审查元素–>NetWork
由于请求的速度不一样,如果你第一次没有看到该文件,你可以通过刷新提高request速度(在众多文件中找到.m4a结尾)
2 通过这个url获取相应的HTTP连接
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
3 因为网上所有的文件都是以流的形式进行传输的,我们获取到连接的相应输入流后,写入到我们磁盘上的某个文件
InputStream inputStream = connection.getInputStream();
FileOutputStream fos = new FileOutputStream("ni.mp4");
byte[] buff = new byte[1024];
int len;
while((len=inputStream.read(buff))!=1){
fos.write(buff,0,len);
}
4.关闭我们相应的流
fos.close();
inputStream.close();
connection.disconnect(); //断开连接
5.运行相应的程序后,我们可以看到生成了相应的音频文件