java抓取网页内容(JAVA的API可以顺利的抓取网络上的大部分指定的网页内容)

优采云 发布时间: 2021-12-31 02:22

  java抓取网页内容(JAVA的API可以顺利的抓取网络上的大部分指定的网页内容)

  通过JAVA API,可以流畅的抓取互联网上大部分指定的网页内容。下面我就和大家分享一下对这种方法的理解和体会。最简单的爬取方法是:

  URLurl=newURL(myurl);BufferedReaderbr=newBufferedReader(newInputStreamReader(url.openStream()));Strings="";StringBuffersb=newStringBuffer("");while((s=br.readLine())!=null){ i++;sb.append(s+"\r\n");}

  URL url = new URL(myurl);

BufferedReader br = new BufferedReader(newInputStreamReader(url.openStream()));

String s = "";

StringBuffer sb = new StringBuffer("");

while ((s = br.readLine()) != null) {

i++;

sb.append(s+"\r\n");

}

  这种方法抓取一般的网页应该没有问题,但是当某些网页中存在嵌套的重定向连接时,会报错如服务器重定向次数过多。这是因为这个网页里面有一些代码。如果转到其他网页,循环过多会导致程序出错。如果只想抓取这个URL中网页的内容,又不想被重定向到其他网页,可以使用下面的代码。

  URLurlmy=newURL(myurl);HttpURLConnectioncon=(HttpURLConnection)urlmy.openConnection();con.setFollowRedirects(true);con.setInstanceFollowRedirects(false);con.connect();BufferedReaderbr=newBufferedReader(newInputStreamReader(con.getInputStream(), "UTF-8"));Strings="";StringBuffersb=newStringBuffer("");while((s=br.readLine())!=null){sb.append(s+"\r\n"); }

  URL urlmy = new URL(myurl);

HttpURLConnection con = (HttpURLConnection) urlmy.openConnection();

con.setFollowRedirects(true);

con.setInstanceFollowRedirects(false);

con.connect();

BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(),"UTF-8"));

String s = "";

StringBuffer sb = new StringBuffer("");

while ((s = br.readLine()) != null) {

sb.append(s+"\r\n");

}

  在这种情况下,程序在爬取时不会跳转到其他页面去抓取其他内容,达到了我们的目的。

  如果我们在内部网,我们还需要为其添加代理。Java 为具有特殊系统属性的代理服务器提供支持。只需将以下程序添加到上述程序中即可。

  Java代码

  

  

  System.getProperties().setProperty("http.proxyHost",proxyName);System.getProperties().setProperty("http.proxyPort",port);

  System.getProperties().setProperty( "http.proxyHost", proxyName );

System.getProperties().setProperty( "http.proxyPort", port );

  这样,你就可以在内网中,从网上抓取你想要的东西。

  以上程序检索到的所有内容都存储在字符串sb中,我们可以通过正则表达式对其进行分析,提取出我们想要的具体内容,供我使用!

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线