import java.net.URL;
import java.net.HttpURLConnection;
import java.io.IOException;
import java.io.InputStream;
import java.util.Scanner;
/**
* Description:
* 解析http://www.ip138.com/,获取所需要的ip和地址。
*
* @author Lee
* */
public class ReptileDemo {
/**
* Description:
* 连接上目标url,获取该网页的内容(html)。
*
* @param Url 目标网页的URL
* @return content 返回网页的内容,没有连接上网页则返回null
* */
public static String getContentByURL(String Url){
String content = null;
URL url = null;
HttpURLConnection conn = null;
try{
//使用目标网址,获取一个url实例
url = new URL(Url);
//url返回一个http协议的url连接
conn = (HttpURLConnection)url.openConnection();
//设置连接超时
conn.setConnectTimeout(5000);
//设置为HTTP方法为GET
conn.setRequestMethod("GET");
//表明接受所有类型的文件
conn.setRequestProperty("Accept","*/*");
//连接资源
conn.connect();
//获取响应码
System.out.println(conn.getResponseCode());
try(
//获取输出流
InputStream input = conn.getInputStream();
Scanner sc = new Scanner(input,"gb2312")){
while(sc.hasNext()){
content+=sc.nextLine()+"\n";
}
//System.out.println(content);
}catch(IOException e){
e.printStackTrace();
}
}catch(IOException e){
e.printStackTrace();
}finally{
//断开连接
conn.disconnect();
}
return content;
}
/**
* Description:
* 解析网页内容,获取需要的ip
*
* @param content 网页内容
* @return ip 返回内容中的ip,没有找到则返回null
* */
public static String getIpByContent(String content){
String ip = null;
int index;
if((index=content.indexOf(":["))!=-1){
String subContent = content.substring(index+2);
if((index=subContent.indexOf("]"))!=-1)
ip = subContent.substring(0,index);
}
return ip;
}
/**
* Description:
* 解析网页内容,获取地址
*
* @param contetn 网页内容
* @return pos 返回网页内容中的地址,没有找到则返回null
* */
public static String getPosByContent(String content){
String pos = null;
int index;
if((index=content.indexOf("自:"))!=-1){
String subContent = content.substring(index+2);
if((index=subContent.indexOf("</c"))!=-1)
pos = subContent.substring(0,index);
}
return pos;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
String content = getContentByURL("http://1212.ip138.com/ic.asp");
if(content!=null){
String ip=getIpByContent(content),pos=getPosByContent(content);
if(ip!=null&&pos!=null)
System.out.println(ip+" "+pos);
else
System.out.println("没有找到内容!");
}else{
System.out.println("连接不上网页!");
}
}
}
实现一个java小爬虫
最新推荐文章于 2022-07-18 20:25:14 发布