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

优采云 发布时间: 2022-01-14 12:17

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

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

  URL url = 新 URL(myurl);

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

  字符串 s = "";

  StringBuffer sb = new StringBuffer("");

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

  我++;

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

  }

  这种方法爬一般的网页应该是没问题的,但是当一些网页中有嵌套的重定向连接时,会报Server redirected too many times之类的错误,这是因为这个网页里面有一些代码是转到其他网页,太多的循环导致程序错误。如果只想爬取这个URL中的网页内容,不想跳转到其他网页,可以使用下面的代码。

  URL urlmy = 新 URL(myurl);

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

  con.setFollowRedirects(true);

  con.setInstanceFollowRedirects(假);

  连接();

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

  字符串 s = "";

  StringBuffer sb = new StringBuffer("");

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

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

  }

  这样,在爬取的时候,程序就不会跳转到其他页面去爬取其他内容,就达到了我们的目的。

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

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

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

  这样,您就可以在内网的同时从Internet上抓取您想要的东西。

  上面程序捕捉到的所有内容都存储在sb字符串中,我们可以通过正则表达式进行分析,提取出我们想要的具体内容,给我用,呵呵,这是多么美妙的一件事啊!!

  参考地址:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线