java根据网址获取网页源码:有两种方法:
这两种方法都只能获取一般网站的源码,对于需要登录,验证,需要证书的网站不行
但是对于get数据传输的的网址,根据get传输数据的特点,所以可以将传入的数据放入url中。
(1)HttpURLConnection不需要导入别的包
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class HttpUrlConnectionTest {
/*
* HttpUrlConnection
* 根据网址获取网站源码
* 只能获取普通网站源码
* 需要登录的网站代码获取不到
*
* */
public static void main(String args[]){
URL url;
int responsecode;
HttpURLConnection urlConnection;
BufferedReader reader;
String line;
try{
//生成一个URL对象,要获取源代码的网页地址为:http://www.sina.com.cn
url=new URL("http://www.cnblogs.com/linjiqin/archive/2012/02/16/2353597.html");
//打开URL
urlConnection = (HttpURLConnection)url.openConnection();
//获取服务器响应代码
responsecode=urlConnection.getResponseCode();
if(responsecode==200){
//得到输入流,即获得了网页的内容
reader=new BufferedReader(new InputStreamReader(urlConnection.getInputStream(),"utf-8"));
while((line=reader.readLine())!=null){
System.out.println(line);
}
}
else{
System.out.println("获取不到网页的源码,服务器响应代码为:"+responsecode);
}
}
catch(Exception e){
System.out.println("获取不到网页的源码,出现异常:"+e);
}
}
}
(2)使用jsoup,需要导入jsoup jar包,网上有好多自己下载就行
方法封装:
public static String getHtmlByUrl(String url) throws IOException{
Document doc2 = Jsoup.connect(url).get();
return doc2.body().toString();
}