一、导读
在学习了网络编程和IO流之后,在网上发现可以实现Java简单的爬虫。读了几篇感觉其实很容易理解,自己就试着写了一下。
大致思路
方法其实很简单,就是从网络上获取文件的地址,自己只需要在编辑器里,获取到所要下载的文件地址,存入内存,然后在将其写到磁盘上就行了。
二、直接上手—以获取某张图片为例
2.1、 我们首先要做的就是先随便从网上找一个简单的文件。
找到一个网站,然后快捷键 F12 进入控制台,刷新一下,获取它所有的请求
在这些请求中,找到你所要抓取的文件,然后选中发现左侧会有文件请求的所有信息,通过这些信息,我们可以找到文件的地址,将文件地址复制保存。
2.2在我们的编辑器里面进行IO流操作获取文件
其实,编码的思路很清晰,我们根据网上的地址,可以获取到文件的路径,在Java中的网络编程中,有一个URL 类——统一资源定位符,它指向万维网上的“资源”指针。从我们的API中可以简单了解一下其构造方法和使用
其中的 openConnection() 方法是我们这次用到的,它用于返回一个URLConnection实例,表示与URL引用的远程对象的URL。
然后就是用IO流进行载入和写进磁盘
完整代码就如下
public static void main(String[] args) throws Exception {
//获取远程地址
URL url = new URL("http://k.sinaimg.cn/n/photo/100/w1500h1000/20190814/57eb-icapxpi5159348.jpg/w610h406092.jpg");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
InputStream inputStream = urlConnection.getInputStream();
FileOutputStream fileOutputStream = new FileOutputStream("g:\\Test.jpg");
//写入磁盘
byte[] buffer = new byte[1024];
int len;
while ((len=inputStream.read(buffer))!=-1){
fileOutputStream.write(buffer,0,len);
}
//关闭流
fileOutputStream.close();
inputStream.close();
urlConnection.disconnect();
}
然后再看一下我们的结果,
完美!!!
三、扩展
以此类推,我们可以根据这个,可以获取一些歌曲什么的。方法也是一样的