webmagic 0.3.0 发布,高性能Java爬虫框架

标签: 软件更新新闻 | 发表时间:2013-09-04 11:37 | 作者:
出处:http://www.oschina.net/?from=rss

webmagic的是一个无须配置、便于二次开发的爬虫框架,它提供简单灵活的API,只需少量代码即可实现一个爬虫。

之前两个版本的主题分别是"灵活","方便",而此次更新的主题是"性能"。

主要更新内容:

1. 重写了XPath解析器,替换了HtmlCleaner。这个XPath解析器(我另外建立了一个项目 Xsoup)基于Jsoup完成,比HtmlCleaner性能好一倍以上,同时有更友好的错误提示。

2. 使用Xsoup后,结合webmagic内部的一些优化,抽取单页面的时间从7~9ms降低到了0.4ms,提高了20倍,在多线程下会有很大的效率提高。

3. Xsoup的XPath兼容大部分XPath 1.0的语法,同时加入了一些便于页面抽取的函数扩展,例如 //div[@class='BlogContent']/tidyText()会去掉所有HTML标签,并进行智能换行;//a/regex(@href,'.*blog.*')支持在结果的属性里使用正则表达式进行进一步抽取。后续会根据大家的反馈增加一些实用的语法和功能。

4. Xsoup目前大部分XPath语法均测试通过,如果在使用中出现问题,可以使用Spider.xsoupOff()关闭xsoup,重新使用HtmlCleaner,并提出反馈。

5. cycleRetryTimes,该机制会将下载失败的url重新放入队列重试,直到达到重试次数,以保证不因为某些网络原因漏抓页面。默认不打开,可通过site.setCycleRetryTimes设置此项,目前只支持HttpClientDownloader和RedisScheduler。

相关 [webmagic 性能 java] 推荐:

webmagic 0.3.0 发布,高性能Java爬虫框架

- - 开源中国社区最新新闻
webmagic的是一个无须配置、便于二次开发的爬虫框架,它提供简单灵活的API,只需少量代码即可实现一个爬虫. 之前两个版本的主题分别是"灵活","方便",而此次更新的主题是"性能". 重写了XPath解析器,替换了HtmlCleaner. 这个XPath解析器(我另外建立了一个项目 Xsoup)基于Jsoup完成,比HtmlCleaner性能好一倍以上,同时有更友好的错误提示.

webmagic使用手册

- - 开源软件 - ITeye博客
webmagic是一个开源的Java垂直爬虫框架,目标是简化爬虫的开发流程,让开发者专注于逻辑功能的开发. webmagic的核心非常简单,但是覆盖爬虫的整个流程,也是很好的学习爬虫开发的材料. web爬虫是一种技术,webmagic致力于将这种技术的实现成本降低,但是出于对资源提供者的尊重,webmagic不会做反封锁的事情,包括:验证码破解、代理切换、自动登录等.

Webmagic 一个网络爬虫工具包

- - 行业应用 - ITeye博客
webmagic是一个开源的Java垂直爬虫框架,目标是简化爬虫的开发流程,让开发者专注于逻辑功能的开发. webmagic的核心非常简单,但是覆盖爬虫的整个流程,也是很好的学习爬虫开发的材料. 作者曾经进行过一年的垂直爬虫的开发,webmagic就是为了解决爬虫开发的一些重复劳动而产生的框架. web爬虫是一种技术,webmagic致力于将这种技术的实现成本降低,但是出于对资源提供者的尊重,webmagic不会做反封锁的事情,包括:验证码破解、代理切换、自动登录、抓取静态资源等.

Java 性能调优

- - 编程语言 - ITeye博客
1.用new关键词创建类的实例时,构造函数链中的所有构造函数都会被自动调用. 但如果一个对象实现了Cloneable接口,我们可以调用它的clone()方法. clone()方法不会调用任何类构造函数. 在使用设计模式(Design Pattern)的场合,如果用Factory模式创建对象,则改用clone()方法创建新的对象实例非常简单.

[原]Java性能调优

- - 傲慢的上校的专栏
写Java也有n年了,现在还是有不少的坏的代码习惯,也通过学习别人的代码学到了不少好的习惯. 留给自己做个警戒,提示以后写代码的时候注意. 在文章的后面,会提供整理的原材料下载. 1、尽量少用new生成新对象.         用new创建类的实例时,构造雨数链中所有构造函数都会被自动调用,操作速度较慢.

Java性能调优续

- - 编程语言 - ITeye博客
       下面列出一些常见的关于字符串优化的策略,简单的我就不多作解释了. 1) 使用规则表达式处理字符串匹配代替复杂的字符串查找和复制操作;. 2) 使用不拷贝字符串中字符的高效方法,例如String.subString()方法;. 3) 尽可能不要使用需要拷贝字符串中字符的低效方法,例如String.toUpperCase()和String.toLowercase();.

java 8 JVM性能优化

- - Java - 编程语言 - ITeye博客
转自:http://qindongliang.iteye.com/blog/2199633. jvm java 垃圾回收 . JVM是JAVA世界的核心,了解它有助于我们更好调试,调优和开发程序,最近散仙在看JAVA特种兵一书,看完觉得,作者写的内容还是挺不错,大家感兴趣的,也可以购买本温故而知新下.

提升Java的锁性能

- - Java译站
几个月前我们介绍了如何通过 Plumbr来 进行线程锁检测,随后便收到了很多类似的问题,“Hi,文章写得不错,现在我终于知道是什么引发的性能问题了,但是现在我该怎么做. 为了在我们的产品中集成这个解决方案,我们付出了许多努力,不过在本文中,我想给大家分享几个常用的优化技巧,而不一定非要使用我们这款锁检测的工具.

Java 代码性能优化

- - IT瘾-geek
代码 优化,一个很重要的课题. 可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢. 这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗. 没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了. 代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每个可以优化的细节了,一个一个细小的优化点累积起来,对于代码的运行效率绝对是有提升的.

Java 性能调优指南 – 高性能Java

- - 码蜂笔记
本文主要基于 Java performance tuning tips or everything you want to know about Java performance in 15 minutes的翻译. 这篇指南主要调优 java 代码而不是 JVM 设置. Java 1.7.0_06 String 内部表示的改变.