`
zscomehuyue
  • 浏览: 412161 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

本文通过JAVA的API可以顺利的抓取网络

阅读更多
本文通过JAVA的API可以顺利的抓取网络上的大部分指定的网页内容,现与大家分享一下这方法理解与心得。最简单的一种抓取方法就是:

URL url = new URL(myurl);

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

String s = "";

StringBuffer sb = new StringBuffer("");

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

i++;

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

}

这种方法抓取一般的网页应该没有问题,但当有些网页中存在一些嵌套的redirect连接时,它就会报Server redirected too many times这样的错误,这是因为此网页内部又有一些代码是转向其它网页的,循环过多导致程序出错。如果只想抓取本URL中的网页内容,而不愿意让它有其它的网页跳转,可以用以下的代码。

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以特殊的系统属性为代理服务器提供支持,只要在上面的程序加上以下程序就可以了。

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

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

这样的话就可以实现处于内部网中而向互联网抓取自己想要的东西了。

上面的程序抓取回来的全部内容都存放在sb这个字符串,我们就可以通过正则表达式对它进行分析,提取出自己想要的具体的内容,为我所用,呵呵,这是多么美妙的一件事情啊!!

本文来自: IT知道网(http://www.itwis.com) 详细出处参考:http://www.itwis.com/html/java/jsp/20090929/6495.html
分享到:
评论

相关推荐

    Java网络抓包 Java网络抓包

    Java网络抓包Java网络抓包Java网络抓包Java网络抓包Java网络抓包Java网络抓包Java网络抓包Java网络抓包Java网络抓包Java网络抓包Java网络抓包Java网络抓包Java网络抓包Java网络抓包Java网络抓包Java网络抓包Java网络...

    java实现网络抓包

    Java 实现网络抓包主要涉及网络通信协议的理解、数据包捕获与解析、以及HTTP协议的深入认识。在这个过程中,开发者通常会用到Java的Socket编程、数据流处理以及第三方库,如Jpcap或Wireshark的Java绑定库。 首先,...

    最新Java API文档(英文版)

    这份“最新Java API文档(英文版)”由SUN公司(现已被Oracle收购)提供,包含了Java开发的核心组件,如基础类库、集合框架、I/O流、网络编程、多线程、反射、异常处理等关键模块。 1. **基础类库**:这是Java开发...

    基于Java+Jnetpcap的网络嗅探器(抓包程序)设计与实现

    【作品名称】:基于Java+Jnetpcap的网络嗅探器(抓包程序)设计与实现 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】...

    Java天气应用程序 - 使用天气API获取实时天气数据并显示给用户

    总之,创建一个Java天气应用程序涉及网络通信、JSON解析、GUI编程等多个方面,是一个综合性的项目,可以帮助开发者巩固和提高Java编程技能。通过这个项目,你不仅可以了解如何与Web服务交互,还能学习到如何创建用户...

    java抓取数据包及网络基础

    Java抓取数据包和网络基础是IT领域中的一个重要分支,主要涉及如何利用Java语言来捕获网络通信中的数据包,并理解网络通信的基本原理。在这个主题中,我们可以学习到以下关键知识点: 1. **网络基础**:首先,我们...

    基于java的开发源码-网络抓包程序.zip

    基于java的开发源码-网络抓包程序.zip 基于java的开发源码-网络抓包程序.zip 基于java的开发源码-网络抓包程序.zip 基于java的开发源码-网络抓包程序.zip 基于java的开发源码-网络抓包程序.zip 基于java的开发源码-...

    java swing界面开发的一个抓取快递接口工具

    在本项目中,"java swing界面开发的一个抓取快递接口工具"是一个利用Java Swing来设计图形用户界面(GUI)的应用,其主要功能是与快递100查询接口进行交互,获取物流信息。下面我们将深入探讨Java Swing和快递100...

    Java实现网页抓取

    2. **Java网络编程**:Java提供了丰富的API来处理网络通信,如`java.net.URL`、`java.net.HttpURLConnection`或Apache的HttpClient库。这些类和库可以帮助我们发送HTTP请求并接收响应。 3. **HTML解析**:抓取到...

    Java源码(网络抓包程序)

    Java源码实现的网络抓包程序是一个用于监测和分析网络数据传输的应用,它可以帮助开发者、安全研究人员或网络管理员了解网络中的通信细节。本程序的核心原理是利用Java的套接字编程和网络协议知识,通过捕获网络接口...

    基于java的网络抓包方法

    描述中提到的博客链接虽然无法直接访问,但根据常规的网络抓包分析,我们可以预期博主可能详细讲解了如何使用Java进行网络抓包,可能包括如何安装和使用Jpcap或Pcap4J库,如何编写代码示例来捕获和解析数据包,以及...

    网络抓包java源码,可实现抓包、分析和还原

    Java原生API虽然不直接支持网络抓包,但可以通过创建Socket并开启服务器监听模式,捕获进出的数据流。这种方法适用于特定的应用场景,比如自定义协议的通信,但不适用于全面的网络抓包。 2. **使用第三方库...

    基于java的网络抓包

    本篇文章主要介绍了基于 Java 的网络抓包方法,通过 Java 代码来抓取网络包。下面是相关知识点的总结: 一、网络抓包技术原理 网络层上有各种各样的数据包,它们以不同的帧格式在网络层上进行传输,但是在传输时...

    JAVA网络抓包程序Java源码

    首先,Java作为一门广泛使用的面向对象编程语言,具有跨平台的优势,这使得用Java编写网络抓包程序可以应用于各种操作系统环境。在Java中,我们通常会使用Socket编程来处理网络连接和数据传输。对于网络抓包,可能...

    JAVA网络抓包程序源代码

    通过学习和分析这个"JAVA网络抓包程序源代码",开发者不仅可以深入理解网络通信的细节,还能掌握Java与C/C++交互、数据包捕获与解析、并发编程等高级技能,这对于网络开发和网络安全领域的工作是非常有帮助的。

    java、html使用文档API

    Java可以通过AJAX(异步JavaScript和XML)与JavaScript交互,实现在不刷新整个页面的情况下更新部分内容。 在Java中处理HTML的另一个场景是使用Servlet和JSP(JavaServer Pages)。Servlet是Java编写的小型服务器端...

    基于java实现的可以直接运行的抓包工具,根据域名抓包。超过设置包数量自动启停网络

    标题中的“基于Java实现的可以直接运行的抓包工具”指的是使用Java编程语言开发的一款网络抓包应用程序。这类工具主要用于捕获网络上的数据包,以便分析网络通信情况、检测网络安全问题或者进行网络性能优化。Java是...

    java抓包程序.rar

    综上所述,这个Java抓包程序利用WinPcap提供的底层网络访问能力,通过Jpcap库实现了跨平台的Java接口,可以捕获和解析网络数据包。而NetWorkDesign_2可能是程序的可视化部分,使用Java2D技术将网络数据转化为直观的...

    java网络抓包程序源码

    Java网络抓包程序源码是用于在网络数据传输中捕获数据包的软件开发资源,它可以帮助开发者理解网络通信过程,进行故障排查、性能分析或安全审计。本源码可能使用了Java语言,这使得它具备跨平台性,可以在任何安装了...

    Java抓取网络资源并插入数据库

    Java抓取网络资源并插入数据库(附详细代码) 如有不懂处可加qq412546724

Global site tag (gtag.js) - Google Analytics