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

优采云 发布时间: 2021-09-17 18:01

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

  通过JavaAPI,您可以成功捕获网络上大多数指定的网页内容。现在我与大家分享我对这种方法的理解和经验。最简单的方法是:

  URLurl=newURL(myurl);BufferedReaderbr=newBuffereReader(newInputStreamReader(url.openStream());字符串=”;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中的网页内容,而不想将其跳转到其他网页,则可以使用以下代码

  urlmy=newURL(myurl);HttpURLConnection=(HttpURLConnection)urlmy.openConnection();con.setFollowRedirects(true);con.setInstanceFollow(false);con.connect();BufferedReaderbr=newBufferedReader(newInputStreamReader(con.getInputStream(),“UTF-8”);字符串=”;StringBuffersb=newStringBuffer(“”);而((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 );

  通过这种方式,您可以进入内部网,从Internet上获取所需内容

  上述程序捕获的所有内容都存储在sb字符串中,因此我们可以通过正则表达式对其进行分析,并提取我们想要使用的特定内容

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线