当前位置: 首页 > 软件库 > Web应用开发 > HTML解析器 >

woody

HTML 解析/提取器
授权协议 Apache
开发语言 Java
所属分类 Web应用开发、 HTML解析器
软件类型 开源软件
地区 国产
投 递 者 米树
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

woody 是一款基于 Java 的 HTML 解析/提取器,用法非常类似 webmagic,是对其抽取模块的完全重写。

功能:

  • 多种结果数据类型(String, char, byte, short int, long, double, float, string[], Set, List,Data)
  • 支持用户之定义脚本处理函数(目前支持 Javascript 函数配置处理)
  • 支持 css、xpath 内核替换
  • 支持 filter 功能
  • 对 css、xpath 内核对象的缓存

一个完整的例子:

public class OsChinaBlog {

	public static void main(String[] args) throws Exception {
		Document doc = Jsoup.connect("http://www.oschina.net/news/43879/webmagic-0-3-0").timeout(60000)
				.userAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:23.0) Gecko/20100101 Firefox/23.0").get();
		String html = doc.html();
		OsChinaBlogModel model = AnnotationExtractor.me().process(html, OsChinaBlogModel.class);
		System.out.println(model.toJson());
	}

	public static class OsChinaBlogModel extends Model {

		public OsChinaBlogModel() {
			//use to reflect
		}

		@Inject
		@ComboExtract(value = { @ExtractBy(value = "h1.OSCTitle", type = ExprType.CSS),
				@ExtractBy(value = "//title/text()", type = ExprType.XPATH) }, op = OP.OR)
		public String title;

		@Inject
		@ExtractBy(value = "div.PubDate a[href~=http://my\\.oschina\\.net/]", type = ExprType.CSS)
		public String author;

		@Inject
		@ExtractBy(value = "发布于.\\s*(\\d+年\\d+月\\d+日)", type = ExprType.REGEX)
		public Date publishDate;

		@Inject
		@ComboExtract(value = {
				@ExtractBy(value = "div.PubDate", type = ExprType.CSS, setting = @Setting(outerHtml = true)),
				@ExtractBy(value = "(\\d+)评", type = ExprType.REGEX) }, op = OP.AND)
		public int commentNum;

		@Inject
		@ExtractBy(value = "span#p_favor_count", type = ExprType.CSS, setting = @Setting(function = @Function(value = "replace", args = {
				"+", "" })))
		public int collectNum;

		@Inject
		@ComboExtract(value = {
				@ExtractBy(value = "div[id=userComments]", type = ExprType.CSS, setting = @Setting(outerHtml = true)),
				@ExtractBy(value = "div.TextContent", type = ExprType.CSS) }, op = OP.AND, multi = true)
		public List commentContents;

		@Inject
		@ExtractBy(value = "div[id=toolbar_wrapper]", setting = @Setting(fliters = { "b", "span" }), type = ExprType.CSS, impl = Document.class)
		public String weibo;

	}
}
  •          Python运算符              Python逻辑运算符              and布尔与-假设x为false。x and y返回false,否则它返回y的计算值。 or 布尔或-假设x是true,它返回true。否则它返回y的计算值。 not 布尔否-假设x是true,返回false。假设x为false。返回true。 Python成员运算符 Python支持

  • Python模块          Import语句          想要使用Python源文件,仅仅须要在还有一个源文件中运行import语句。语法例如以下:          import module1          当解释器遇到import语句。假设模块在当前的搜索路径就会被导入。搜索路径是一个解释器会先进行搜索的全部文件夹的列表。          from…import语句   

  • 这篇文章是接《woody 3.0笔记本安装经历 》系列写的,先请看前面几篇再看下文可能比较合适。但是如果你对debian没什么兴趣 而对自己用的发行版很熟悉的,下面的东西你也觉得不会太无聊 前面,我提到了配置pcmcia网卡和modem万一不成功怎么办。 由于,现在在国内sourceforge网不能访问 我不能直接读到pcmcia_cs的作者的文章,所以我现在说的很多都是通过大量的实践和文档阅读零

  • Python 是一种解释性语言:这意味着开发过程中省去了编译这个环节,类似于PHP\Perl。 Python 是交互式语言:这意味着你能够在一个python提示符,直接互动运行写你的程序。 Python是面相对象语言:这意味着Python支持面向对象的风格或者代码封装在对象的编程技术。 Python的两种编程方式: 1、交互式编程;          交互式编程不须要创建脚本文件。是通过Pytho

  • 通用定时器的益处时间  Tout= ((arr+1)*(psc+1))/Tclk; TIM3时钟使能 TIM3 是挂载在 APB1 之下,所以我们通过 APB1 总线下的时钟使能函数来使能 TIM3。调用的函数是: RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //时钟使能 初始化定时器参数,设置自动重装值,分频系数,计数方式。 在库函数

 相关资料
  • 下载结果按钮是否可以通过cli为AWS文本?还是AWS使用的解析器在线可用?已经尝试寻找它,但没有运气。

  • 我已经找了两天了,我可能已经看到了一个解决我的问题的方法,虽然我还没有找到一个我理解的。 我正在学习本教程--简单的XMLPullParser教程 我知道我需要改变的两个领域是 employees=parser.parse(getAssets().open(“employees.xml”)); 我试着弄到一些东西 URL URL=新URL(“http://www.example.xml”); em

  • 问题内容: 我希望解析Java源代码文件,并提取方法源代码。 我需要这样的方法: 有没有简单的方法可以做到这一点,有一个库可以帮助我构建方法,等等? 问题答案: 从https://javaparser.org/下载Java解析器 您必须编写一些代码。此代码将调用解析器…它将返回一个CompilationUnit: 注意:SEDInputStream是输入流的子类。您可以根据需要使用FileInpu

  • 本文向大家介绍python解析html提取数据,并生成word文档实例解析,包括了python解析html提取数据,并生成word文档实例解析的使用技巧和注意事项,需要的朋友参考一下 简介 今天试着用ptyhon做了一个抓取网页内容,并生成word文档的功能,功能很简单,做一下记录以备以后用到。 生成word用到了第三方组件python-docx,所以先进行第三方组件的安装。由于windows下安

  • 问题内容: 我正在寻找一种从网页中提取HTML片段并对该HTML片段执行一些特定操作的有效方法。 所需的操作是: 删除所有具有“隐藏”类别的标签 删除所有脚本标签 删除所有样式标签 删除所有事件属性(在 =“ ”上) 删除所有样式属性 我一直在使用HTML Parser (org.htmlparser)来完成此任务,并且能够满足所有要求,但是,我不觉得自己有一个优雅的解决方案。当前,我正在使用Cs

  • 问题内容: 我有一个将消息记录到文件的过程。 我想实现另一个进程(在Python中),该进程解析这些日志(将它们写入文件时),过滤我感兴趣的行,然后根据第一个进程的状态执行某些操作。 我想知道在继续编写自己的东西之前,是否有Python库中的内容是这样的。 此外,关于如何实现类似Python之类的想法将不胜感激。 谢谢。 问题答案: C程序通常寻求当前位置以清除所有“文件结束”标志。但是正如@90

  • 我是自然语言处理的新手。我需要从课文中提取名词短语。到目前为止,我已经使用OpenNLP的分块解析器来解析我的文本,以获得树结构。但是我不能从树结构中提取名词短语,开放nlp中是否有正则表达式模式,以便我可以使用它来提取名词短语。 下面是我使用的代码 这里我得到的输出为 (顶部(S)ADJP(JJ欢迎)(PP(TO)(NP(NNP Big)(NNP Data.))))(名词短语)(名词短语)(名词

  • 我正在尝试使用欧洲中央银行(ECB)的当前汇率提要http://www.ECB.int/stats/eurofxref/eurofxref-daily.xml 他们提供了关于如何解析xml的文档,但没有一个选项对我有效:我检查了是否设置了allow_url_fopen=on。 http://www.ecb.int/stats/exchange/eurofxref/html/index.en.htm