当前位置: 代码迷 >> Eclipse >> 关于Java抓取网页内容解决方案
  详细解决方案

关于Java抓取网页内容解决方案

热度:57   发布时间:2016-04-22 23:55:41.0
关于Java抓取网页内容
public class Main {
public static void main(String[] args) {
WebpageCapture demo = new WebpageCapture();
try {
demo.captureHtml("111.142.55.73");
//demo.captureJavascript("107818590577");
} catch (Exception e) {
e.printStackTrace();
}
}
}

public class WebpageCapture {
public void captureHtml(String ip) throws Exception {
String strURL = "http://ip.chinaz.com/?IP=" + ip;
URL url = new URL(strURL);
HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
InputStreamReader input = new InputStreamReader(httpConn
.getInputStream(), "utf-8");
BufferedReader bufReader = new BufferedReader(input);
String line = "";
StringBuilder contentBuf = new StringBuilder();
while ((line = bufReader.readLine()) != null) {
contentBuf.append(line);
}
String buf = contentBuf.toString();
int beginIx = buf.indexOf("查询结果[");       //这里出错,为什么找不到这个字符串
int endIx = buf.indexOf("上面四项依次显示的是");
String result = buf.substring(beginIx, endIx);
System.out.println("captureHtml()的结果:\n" + result);
}
}

出错为:
java.lang.StringIndexOutOfBoundsException: String index out of range: -10424
at java.lang.String.substring(String.java:1955)
at cn.edu.xmu.zgy.WebpageCapture.captureHtml(WebpageCapture.java:24)
at cn.edu.xmu.zgy.Main.main(Main.java:7)


------解决思路----------------------

int endIx = buf.indexOf("上面四项依次显示的是");

是这行错了好吧,,,,
应该是:

int endIx = buf.indexOf("上面三项依次显示的是");
  相关解决方案