今天刚搜了一个爬虫小程序,我想在未来的日子里将它逐渐完善,一个学习的过程,今天只是一个开始。
毛坯程序出处:http://lisanping.javaeye.com/blog/75221
import java.io.*;
import java.net.*;
public class Spider implements Runnable{
HttpURLConnection huc;
InputStream is;
BufferedReader reader;
String url;
public Spider(){
try {
url="http://localhost:8080/sample.html";
} catch (Exception e) {
e.printStackTrace();
}
try {
huc=(HttpURLConnection)new URL(url).openConnection();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
new Thread(this).start();
}
public void run() {
try {
huc.setRequestMethod("GET");
} catch (ProtocolException e) {
e.printStackTrace();
}
try {
huc.setUseCaches(true);
huc.connect();
} catch (IOException e) {
e.printStackTrace();
}
try {
is=huc.getInputStream();
reader=new BufferedReader(new InputStreamReader(is,huc.getContentType().equals("text-html; charset=gb2312")?"gb2312":"UTF-8"));
StringBuffer temp=new StringBuffer();
String str;
while((str=reader.readLine())!=null){
temp.append(str+"/n");
}
System.out.println(new String(temp));
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
reader.close();
is.close();
huc.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String [] args){
Spider sp=new Spider();
sp.run();
}
}
public URLConnection openConnection()throws IOException返回一个 URLConnection 对象,它表示到 URL 所引用的远程对象的连接。 每次调用此 URL 的协议处理程序的 openConnection 方法都打开一个新的连
java.lang.Object
java.net.URLConnection
java.net.HttpURLConnection
setRequestMethod(String method) 设置 URL 请求的方法, GET POST HEAD OPTIONS PUT DELETE TRACE 以上方法之一是合法的,具体取决于协议的限制。
connect() 打开到此 URL 引用的资源的通信链接(如果尚未建立这样的连接)。
setUseCaches(boolean usecaches) 将此 URLConnection 的 useCaches 字段的值设置为指定的值。
getInputStream() 返回从此打开的连接读取的输入流。
BufferedReader 从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
InputStreamReader InputStreamReader 是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。
InputStreamReader(InputStream in, Charset cs) 创建使用给定字符集的 InputStreamReader。