在Java中可以用java.net.URL类对实际的URL进行建模,通过这个类,可以对相应的Web服务器发出请求并且获得相应的文档。Java.net.URL类有一个默认的构造函数,使用URL地址作为参数,构造URL对象。
URL pageURL=new URL(path);
之后,可以通过获得的URL对象来取得网络流,进而像操作本地文件一样来操作网络资源。
InputStream stream=pageURL.openStream();
可以将网页看作网络文件,然后按照文件读取的方式把它读出来并保存到本地。
一个下载网页的程序:
package crawler;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.Scanner;
import tool.WriteFile;
public class RetrivePage {
public static String downloadPage(String path) throws IOException{
URL pageURL=new URL(path);
//创建网络流
Scanner in=new Scanner(new InputStreamReader(pageURL.openStream()));
in.useDelimiter("\\z");//可以用正则表达式分段读取网页
//读取网页内容
StringBuilder pageBuffer=new StringBuilder();
while(in.hasNext()){
pageBuffer.append(in.next());
}
in.close();
//返回网页内容
return pageBuffer.toString();
}
public static void main(String[] args) throws IOException {
String path="http://www.essence.com.cn/essence/news/NewsContent.jsp?docId=29499442";
String content=RetrivePage.downloadPage(path);
System.out.println(content);
String filePath="D:\\lucene\\data\\news.txt";
WriteFile.writeFile(filePath, content);
}
}
网友评论