`

JAVA EE robot_ItSucks

阅读更多

http://open-open.com/open223668.htm

 

ItSucks是一个java web spider(web机器人,爬虫)开源项目。支持通过下载模板和正则表达式来定义下载规则。提供一个swing GUI操作界面。

 

\\Administratorsoa@192.168.100.38\bis\书籍教程\Java\java\使用 HttpClient 和 HtmlParser 实现简易爬虫.htm

https://www.ibm.com/developerworks/cn/opensource/os-cn-crawler/#author

https://www.ibm.com/developerworks/cn/opensource/os-cn-crawler/#1.使用 HttpClient 和 HtmlParser 实现简易爬虫

这篇文章介绍了 HtmlParser 开源包和 HttpClient 开源包的使用,在此基础上实现了一个简易的网络爬虫 (Crawler),来说明如何使用 HtmlParser 根据需要处理 Internet 上的网页,以及如何使用 HttpClient 来简化 Get 和 Post 请求操作,构建强大的网络应用程序。
<!-- START RESERVED FOR FUTURE USE INCLUDE FILES--><!-- include java script once we verify teams wants to use this and it will work on dbcs and cyrillic characters --><!-- END RESERVED FOR FUTURE USE INCLUDE FILES-->

使用 HttpClient 和 HtmlParser 实现简易爬虫

这篇文章介绍了 HtmlParser 开源包和 HttpClient 开源包的使用,在此基础上实现了一个简易的网络爬虫 (Crawler),来说明如何使用 HtmlParser 根据需要处理 Internet 上的网页,以及如何使用 HttpClient 来简化 Get 和 Post 请求操作,构建强大的网络应用程序。

 

使用 HttpClient 和 HtmlParser 实现简易爬虫
HttpClient 与 HtmlParser 简介
开发环境的搭建
HttpClient 基本类库使用
HtmlParser 基本类库使用
简易爬虫的实现
总结
参考资料
关于作者
关于作者
对本文的评价

 

HttpClient 与 HtmlParser 简介

本小结简单的介绍一下 HttpClinet 和 HtmlParser 两个开源的项目,以及他们的网站和提供下载的地址。

HttpClient 简介

HTTP 协议是现在的因特网最重要的协议之一。除了 WEB 浏览器之外, WEB 服务,基于网络的应用程序以及日益增长的网络计算不断扩展着 HTTP 协议的角色,使得越来越多的应用程序需要 HTTP 协议的支持。虽然 JAVA 类库 .net 包提供了基本功能,来使用 HTTP 协议访问网络资源,但是其灵活性和功能远不能满足很多应用程序的需要。而 Jakarta Commons HttpClient 组件寻求提供更为灵活,更加高效的 HTTP 协议支持,简化基于 HTTP 协议的应用程序的创建。 HttpClient 提供了很多的特性,支持最新的 HTTP 标准,可以访问这里 了解更多关于 HttpClinet 的详细信息。目前有很多的开源项目都用到了 HttpClient 提供的 HTTP功能,登陆网址 可 以查看这些项目。本文中使用 HttpClinet 提供的类库来访问和下载 Internet上面的网页,在后续部分会详细介绍到其提供的两种请求网络资源的方法: Get 请求和 Post 请求。Apatche 提供免费的 HTTPClien t源码和 JAR 包下载,可以登陆这里 下载最新的HttpClient 组件。笔者使用的是 HttpClient3.1。

HtmlParser 简介

当今的 Internet 上面有数亿记的网页,越来越多应用程序将这些网页作为分析和处理的数据对象。这些网页多为半结构化的文本,有着大量的标签和嵌套的结构。当我们自己开发一 些处理网页的应用程序时,会想到要开发一个单独的网页解析器,这一部分的工作必定需要付出相当的精力和时间。事实上,做为 JAVA 应用程序开发者, HtmlParser 为其提供了强大而灵活易用的开源类库,大大节省了写一个网页解析器的开销。 HtmlParser 是 http://sourceforge.net 上活跃的一个开源项目,它提供了线性和嵌套两种方式来解析网页,主要用于 html 网页的转换(Transformation) 以及网页内容的抽取 (Extraction)。HtmlParser 有如下一些易于使用的特性:过滤器 (Filters),访问者模式 (Visitors),处理自定义标签以及易于使用的 JavaBeans。正如 HtmlParser 首页所说:它是一个快速,健壮以及严格测试过的组件;以它设计的简洁,程序运行的速度以及处理 Internet 上真实网页的能力吸引着越来越多的开发者。 本文中就是利用HtmlParser 里提取网页里的链接,实现简易爬虫里的关键部分。HtmlParser 最新的版本是HtmlParser1.6,可以登陆这里 下载其源码、 API 参考文档以及 JAR 包。

 




回页首


开发环境的搭建

笔者所使用的开发环境是 Eclipse Europa,此开发工具可以在 www.eclipse.org 免费的下载;JDK是1.6,你也可以在 www.java.sun.com 站点下载,并且在操作系统中配置好环境变量。在 Eclipse 中创建一个 JAVA 工程,在工程的 Build Path 中导入下载的Commons-httpClient3.1.Jar,htmllexer.jar 以及 htmlparser.jar 文件。


图 1. 开发环境搭建
 开发环境搭建




回页首


HttpClient 基本类库使用

HttpClinet 提供了几个类来支持 HTTP 访问。下面我们通过一些示例代码来熟悉和说明这些类的功能和使用。 HttpClient 提供的 HTTP 的访问主要是通过 GetMethod 类和 PostMethod 类来实现的,他们分别对应了 HTTP Get 请求与 Http Post 请求。

GetMethod

使用 GetMethod 来访问一个 URL 对应的网页,需要如下一些步骤。

  1. 生成一个 HttpClinet 对象并设置相应的参数。
  2. 生成一个 GetMethod 对象并设置响应的参数。
  3. 用 HttpClinet 生成的对象来执行 GetMethod 生成的 Get 方法。
  4. 处理响应状态码。
  5. 若响应正常,处理 HTTP 响应内容。
  6. 释放连接。

清单 1 的代码展示了这些步骤,其中的注释对代码进行了较详细的说明。

 

end

分享到:
评论

相关推荐

    ROS定位功能包:robot_localization

    在ROS中,`robot_localization`是一个关键的功能包,用于融合来自多种传感器的数据,实现机器人的高精度定位。 **一、robot_localization功能介绍** `robot_localization`是ROS中的一个核心节点,其主要任务是通过...

    robot_vision_ws.zip

    本文将深入探讨“robot_vision_ws.zip”这一机器视觉功能包在ROS环境中的应用。 首先,让我们理解“robot_vision_ws”这一命名的含义。在ROS中,“ws”通常代表“workspace”,即工作空间,它是ROS项目的基本组织...

    RobotUtil_JavaRobot_JavaRobot工具类_robot_

    在Java编程语言中,`java.awt.Robot`类是一个强大的工具,它允许程序模拟用户的键盘和鼠标输入。这个`RobotUtil`是基于`Robot`类的进一步封装,目的是简化和优化自动化测试、屏幕抓取或者任何需要模拟用户交互场景的...

    robot_vision 机器视觉

    "robot_vision"是一个专门针对这一领域的功能包,它集成了多种视觉处理技术,如摄像头标定、OpenCV库的使用、人脸识别、物体跟踪、二维码识别以及物体识别,极大地丰富了ROS在视觉应用上的可能性。 1. **摄像头标定...

    robot_results.groovy

    robot_results.groovy是用于Jenkins+Email Extension Plugin构建Robot Framework结果报告的一个自定义脚本

    robot_vision

    在机器人技术领域,视觉系统是不可或缺的一部分,"robot_vision"这个项目专注于人脸识别和物体识别,结合了ROS(Robot Operating System)和OpenCV这两个强大的工具。ROS是一个开源操作系统,为开发机器人应用提供了...

    ROS_Robot_Programming_CN_robot_asleepmrl_robotprogramming_ROS_RO

    这个资源包"ROS_Robot_Programming_CN"显然是针对中文用户设计的,旨在帮助学习者从基础概念入手,逐步掌握如何在ROS环境下进行机器人程序设计。 1. **ROS基础知识**:ROS的核心概念包括节点(Node)、话题(Topic)、...

    使用robot_localization 实现传感器融合 的深入分步教程_设计_文档_相关文件_下载

    一个深入的分步教程,用于使用来自robot_localization 的扩展卡尔曼滤波器节点实现传感器融合!这里解释了协方差和卡尔曼滤波器等基本概念! 本教程特别有用,因为还没有一个完整的端到端实现教程,用于使用 robots...

    robot_localization_localization_雷达定位ekf_环境建图_ROS_ros小车建图_

    ROS(Robot Operating System)是一个开源操作系统,用于机器人设备和软件的开发、测试和部署。在ROS环境下进行小车室内建图与定位是一项重要的任务,它涉及到多个ROS节点、消息类型和服务,以及关键算法的实现。...

    ROS Delta机器人 ros_delta_robot-master.zip

    ROS三角洲机器人。 delta_robot_support包含全局启动文件,URDF和网格的项目。 delta_robot_kinematics包运动学库 delta_robot_img_processor ROS图像...roslaunch delta_robot_support delta_robot_real.launch

    PyPI 官网下载 | hello_robot_stretch_body-0.0.15.tar.gz

    标题中的"PyPI 官网下载 | hello_robot_stretch_body-0.0.15.tar.gz"表明这是一个从Python Package Index (PyPI) 下载的软件包,名为 "hello_robot_stretch_body",版本号为0.0.15,且以tar.gz格式压缩。PyPI是...

    robot_velocity_planning _V2.0.rar

    梯形、余弦、多项式、7段S型、7段修正S型、15段S型、31段S型速度规划演示软件。采用统一架构实现了以上7种速度规划算法,所有核心算法均用c语言实现,不调用第三方算法库,采用QT实现图形用户界面。

    dc_pid_autotuned.rar_6-dof robot_arm robot_pid robot_robot arm

    标题中的“dc_pid_autotuned.rar_6-dof robot_arm robot_pid robot_robot arm”暗示了这是一个关于六自由度(6-DOF)机器人臂的PID控制器自动调谐的项目。这个项目的重点在于优化控制算法,特别是比例-积分-微分...

    Vision_robot_Vision_

    "Vision_robot_Vision_"这一主题恰好揭示了我们正在探讨的是如何让机器人通过视觉算法来理解和感知环境,从而实现更高效、精确的任务执行。在"Testing the vision algorithm"的描述中,我们可以看出这是对视觉算法...

    mastering_ros_robot_description_pkg.tar.gz

    1. 解压文件:首先,你需要解压"mastering_ros_robot_description_pkg.tar.gz",这将创建一个名为"mastering_ros_robot_description_pkg"的文件夹。 2. 查看源代码:打开"robot.urdf.xacro",仔细阅读并理解每个元素...

    Fanuc_Robot_Rel_Ver_1.42.01.zip

    标题中的"Fanuc_Robot_Rel_Ver_1.42.01.zip"指的是发那科(Fanuc)机器人的关系或更新版本1.42.01的压缩包文件。发那科是一家全球知名的机器人制造商,其产品广泛应用于制造业,尤其是自动化生产线上的焊接、装配、...

    Robot_Controller.rar_avr_robot_robot avr_robot controll_robot_co

    《AVR微控制器在机器人控制中的应用——基于AVR Robot Controller Ver 1.1》 在现代科技领域,机器人技术正日益发展,其中控制系统的选取至关重要。本文将深入探讨一个基于AVR微控制器的机器人控制器——AVR Robot ...

    Forex Auto Trading EA_robot_12345_forex_TheRobot_ea.zip

    标题中的"Forex Auto Trading EA_robot_12345_forex_TheRobot_ea.zip"揭示了我们正在讨论的是一个自动交易机器人,用于外汇(Forex)市场。"EA"是Expert Advisor的缩写,这在金融交易领域通常指的是自动化交易策略或...

    robot_project_particlefilter_robot_

    在这个"robot_project_particlefilter_robot_"项目中,我们看到的是一个利用粒子滤波技术实现的机器人自主导航的代码示例。下面我们将详细探讨这个项目中的关键知识点。 1. **粒子滤波器(Particle Filter)原理**: ...

Global site tag (gtag.js) - Google Analytics