当前位置:  编程技术>java/j2ee

java抓取网页数据获取网页中所有的链接实例分享

    来源: 互联网  发布时间:2014-10-31

    本文导语:  效果图 代码如下:import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;import java.util.ArrayList;import java.util.regex.Matcher;import java.util.regex.Pattern; public class HtmlParser { /**  * 要...

效果图



代码如下:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class HtmlParser {
 /**
  * 要分析的网页
  */
 String htmlUrl;

 /**
  * 分析结果
  */
 ArrayList hrefList = new ArrayList();

 /**
  * 网页编码方式
  */
 String charSet;

 public HtmlParser(String htmlUrl) {
  // TODO 自动生成的构造函数存根
  this.htmlUrl = htmlUrl;
 }

 /**
  * 获取分析结果
  *
  * @throws IOException
  */
 public ArrayList getHrefList() throws IOException {

  parser();
  return hrefList;
 }

 /**
  * 解析网页链接
  *
  * @return
  * @throws IOException
  */
 private void parser() throws IOException {
  URL url = new URL(/tech-java/htmlUrl/index.html);
  HttpURLConnection connection = (HttpURLConnection) url.openConnection();
  connection.setDoOutput(true);

  String contenttype = connection.getContentType();
  charSet = getCharset(contenttype);

  InputStreamReader isr = new InputStreamReader(
    connection.getInputStream(), charSet);
  BufferedReader br = new BufferedReader(isr);

  String str = null, rs = null;
  while ((str = br.readLine()) != null) {
   rs = getHref(str);

   if (rs != null)
    hrefList.add(rs);
  }

 }

 /**
  * 获取网页编码方式
  *
  * @param str
  */
 private String getCharset(String str) {
  Pattern pattern = Pattern.compile("charset=.*");
  Matcher matcher = pattern.matcher(str);
  if (matcher.find())
   return matcher.group(0).split("charset=")[1];
  return null;
 }

 /**
  * 从一行字符串中读取链接
  *
  * @return
  */
 private String getHref(String str) {
  Pattern pattern = Pattern.compile("


    
 
 

您可能感兴趣的文章:

  • 怎样把整张网页内容当作一副图形(只能作为图像,因为可能网页中有图)传给控制打印的Java程序?
  • 网页设计要用java吗?我想学java
  • 学java做网页要多少时间?
  • Java网页浏览器 Lobo
  • java与网页相关的两个问题
  • JAVA APPLET与JSP有什么区别?好像都是把JAVA代码嵌到网页中。
  • 如何在JAVA环境里调用网页
  • 请问java应用程序怎样打开网页(在线等待)
  • 可以用java applet控制网页上的其它元素吗?
  • java里让网页过期的方法是什么?
  • 有人有用JAVA读一个网页代码的程序吗?(在线等!)
  • 新手散分问题:如何在ASP做的网页上嵌入JAVA程序?
  • Java网页爬虫 JSpider
  • 这个Applet程序为什么不能在网页中运行?提示找不到Java.awt.*;Java.applet.*;
  • 在java中如何用URL类访问一个网页,并获取返回值????
  • java实现网页解析示例
  • 请问哪里有能用于网页上的可见即所得html编辑器(Java写的)源代码?
  • 近期发现网页上有.cfm扩展名的网站!.cfm是什么格式!用java开发的吗?
  • 在java小程中怎样打开某一网页如:www.263.com要原带吗
  • java抓取网页数据示例
  • 屏幕抓取API的Java库程序 JxCapture
  • java根据url抓取并生成缩略图的示例
  • java抓取鼠标事件和鼠标滚轮事件示例
  • java 抓取网页内容实现代码
  • docker中文入门学习手册 iis7站长之家
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java Servlet获取和设置cookie实例代码
  • 万般火急!关于java打印,已经得到printerJob实例,那么怎么通过它得到Pageable实例?
  • 可以有其他两个类的实例同时调用一个java实例的两个方法吗?
  • <java技术手册>与<java实例技术手册>这两本书怎么样?
  • Java单例模式实例简述
  • 寻求java加密算法及实例
  • java web start实例代码COPY不了,怎么办?
  • 请问哪里有《java实例技术手册》的电子书下载?100分赠送!
  • 请教:JAVA中说什么类的实例,那是怎么样的一个概念呢?
  • java实现大数加法(BigDecimal)的实例代码
  • Java究竟能干些什么呢?清高手们列举一些实例出来,跟帖有分.
  • java HashMap的keyset实例
  • java获取当前日期使用实例
  • java之super关键字用法实例解析
  • Java调用DOS实现定时关机的实例
  • java结束进程的实例代码
  • 急!大家谁有类似visio的java实例或代码?
  • java 如何获取对象实例的大小
  • 高分火速求解,请在线朋友回答:java自定义类怎样生成实例数组?( className[] N=new className[X];怎么不行?)
  • 刚学java想试编一个文本编辑器,各位能不能给推荐一些较好的参考程序或实例
  • Java位运算和逻辑运算的区别实例
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向




  • 特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3