很多时候用到抓取网页数据的功能,以前工作中曾经用到过,今天总结了一下:

1、抓取网页数据通过指定的URL,获得页面信息,进而对页面用DOM进行 NODE分析,处理得到原始HTML数据,这样做的优势在于,处理某段数据的灵活性高,难点在节算法需要优化,在页面HTML信息大时,算法不好,会影响处理效率。

2、htmlparser框架,对html页面处理的数据结构,HtmlParser采用了经典的Composite模式,通过RemarkNode、TextNode、TagNode、AbstractNode和Tag来描述HTML页面各元素。Htmlparser基本上能够满足垂直搜索引擎页面处理分析的需求,映射HTML标签,可方便获取标签内的HTML CODE。

Htmlparser 官方介绍: htmlparser是一个纯的java写的html解析的库,它不依赖于其它的java库文件,主要用于改造或提取html。它能超高速解析html,而且不会出错。现在htmlparser最新版本为2.0。毫不夸张地说,htmlparser就是目前最好的html解析和分析的工具。

3、nekohtml 框架,nekohtml在容错性、性能等方面的口碑上比htmlparser好(包括htmlunit也用的是nekohtml),nokehtml 类似XML解析原理,把html标签确析为dom, 对它们对应于DOM树中相应的元素进行处理。

NekoHTML官方介绍:NekoHTML是一个Java语言的 HTML扫描器和标签补全器(tag balancer) ,使得程序能解析HTML文档并用标准的XML接口来访问其中的信息。这个解析器能够扫描HTML文件并“修正”许多作者(人或机器)在编写HTML文档 过程中常犯的错误。

NekoHTML能增补缺失的父元素、自动用结束标签关闭相应的元素,以及不匹配的内嵌元素标签。NekoHTML的开发使用了 Xerces Native Interface (XNI),后者是Xerces2的实现基础。

java 网页数据_JAVA获取网页数据相关推荐

  1. Python量化入门系列:获取数据-Tushare获取股票数据(1)

    做量化用到的数据一般包括二级市场各种数据.宏观经济各种数据以及一些特殊需求的网页数据,需要有通过python获取数据.常见的获取数据方式有三种: 一是通过SQL语言从数据库获取数据,适用于二级市场和宏 ...

  2. Qt|Http笔记-两种方式发送http协议数据,获取服务器数据(GET方法)

    目录 背景 演示 搭建Java Web环境 QTcpSocket获取服务器数据 QNetworkAccessManager获取服务器数据 背景 Qt中有2个方式可以实现HTTP协议的发送,一个是使用Q ...

  3. js 用下标获取map值_js map方法处理返回数据,获取指定数据简写方法

    map方法处理返回数据,获取指定数据简写方法 前言 后端返回数据为数组列表时,通常比较全面,包含了很多不需要的数据,可以通过 map 方法处理返回数据,筛选出想要的数据 例如 // 返回数据 res ...

  4. vba获取html代码数据,VBA获取网页表格数据

    '获取中国地震网的地震信息 Option Explicit 'http://data.earthquake.cn/datashare/globeEarthquake_csn.html Sub WebI ...

  5. java获取页面标签_java获取网页源代码后,提取标签内容……

    java获取网页源代码后,提取标签内容-- 关注:245  答案:2  mip版 解决时间 2021-02-01 09:11 提问者咏bù琂败 2021-01-31 13:49 import java ...

  6. java读取word表格中的数据_JAVA获取word表格中数据的方案

    上一个项目的开发中需要实现从word中读取表格数据的功能,在JAVA社区搜索了很多资料,终于找到了两个相对最佳的方案,因为也得到了不少网友们的帮助,所以不敢独自享用,在此做一个分享. 两个方案分别是: ...

  7. java控制一次传10条数据_java 定时同步数据的任务优化

    前言 定时任务在系统中并不少见,主要目的是用于需要定时处理数据或者执行某个操作的情况下,如定时关闭订单,或者定时备份.而常见的定时任务分为2种,第一种:固定时间执行,如:每分钟执行一次,每天执行一次. ...

  8. java servlet 请求_java servlet请求数据

    * 获取请求数据 * 请求数据: * 请求行:请求方式 请求url 协议 * getMethod(); 返回请求方式 * getRequestURL();返回请求url * getREquestUri ...

  9. java批量处理数据_Java批量处理数据

    要求:共1000条数据,第一次批量插入100条,第二次批量插入101到200条,依次插入数据: 实现方式这里选择了两种常用的方式,都是使用List操作: 第一种实现思路如下: <1> 原先 ...

最新文章

  1. java的源代码文件扩展名_【单选题】Java 的源代码文件具有( )的扩展名 (5.0分) A. .c B. .class C...
  2. 3、Angular JS 学习笔记 – Controllers [翻译中]
  3. 8086_显存相关知识
  4. 如何运用领域驱动设计 - 工作单元
  5. 程序猿的崛起,一篇文章看懂编程语言
  6. windows curl ssl版本号编译
  7. Redis实战篇(视频学习来自黑马程序员)
  8. UEFI+GPT模式下的Windows系统中分区结构和默认分区大小及硬盘整数分区研究
  9. Windows XP 32位环境下VS2008+DDKXP驱动开发环境配置
  10. [Extjs6]随记 store本地过滤数据显示
  11. 郑州大学计算机课程表查询,郑州大学研究生课程表
  12. 美团商品知识图谱的构建及应用
  13. 《第五项修炼,学习型组织的艺术与实践》读书笔记
  14. 请教一下如何使用mdx文件
  15. IDEA+Java+Servlet+JSP+Mysql实现学生选课签到系统
  16. opengl绘制太阳系:地球+卫星+行星
  17. 微信小程序-天气预报1.0版本
  18. 探索设计之路-Photoshop【魔棒和快速选择工具】
  19. 【计算机网络】IP协议分析
  20. python骂人脚本_Python 实现王者荣耀中的敏感词过滤示例

热门文章

  1. 《预训练周刊》第23期:Smart Bird:解决变换器性能瓶颈的新方法
  2. 前端加密解密 crypto-js
  3. ENVI软件使用与样本采集
  4. 域服务器计算机信息丢失,网管的困惑:域控制器哪去了Windows系统 -电脑资料
  5. 正厚知识 | 我们距离头号玩家还有多远
  6. 复制conda env环境:/home/×××/bin/python 没有解析器的问题
  7. Linux磁盘管理 df、du、fdisk
  8. 汉诺塔问题详解 递归实现 C语言
  9. Android 蓝牙开发——Avrcp协议获取歌曲信息(十八)
  10. 卡特尔16PF性格测试与答案