CSkin博客

标题: 【爬虫类库】C#超级方便的爬虫Jumony类库 [打印本页]

作者: 乔克斯    时间: 2016-5-19 18:29
标题: 【爬虫类库】C#超级方便的爬虫Jumony类库
说明:
Jumony是一个开源项目,已经有三年的历史了,在这三年中,秉承提供给.NET程序员完整的HTML掌控能力,Jumony历经无数次的改进,终于进入了一个新的阶段。Jumony Core 3是一个真正意义上的HTML引擎。
Jumony Core 3目前已经在NuGet上发布,请直接在NuGet包管理器中搜索 Jumony Core ,即可下载。
项目地址:https://github.com/Ivony/Jumony

效果截图:


介绍:
一、解析器

特性例子
孤立的<解析为文本< a应当解析为< a
孤立的>解析为文本<a>></a>应当解析为<a>></a>
标记属性(没有值的属性)<input type="text" checked />
元素丢失结束标签<div><a href="test.html">测试链接</div>
可选结束标签元素
"body", "colgroup", "dd", "dt", "head", "html", "li", "option", "p", "tbody", "td", "tfoot", "th", "thead", "tr"
<p>abc<p>123
无结束标签元素
"area", "base", "basefont", "br", "col", "frame", "hr", "img", "input", "isindex", "link", "meta", "param", "wbr", "bgsound", "spacer", "keygen"
<img src="1.jpg">
CData元素<script>if ( 1<a ) alert( "<div>" );</script>
"script", "style", "textarea", "title" 
预格式化元素<pre>    前面有空格</pre>
属性值使用单引号<a href='#'>
属性值使用双引号<a href="#"
属性值不使用引号<a href=#>
属性值丢失(但有等号)<a href=>
属性值前面有空格<a href= "test.html">
解析HTML声明<!DOCTYPE html>


不仅仅是可以从文本中解析HTML,Jumony的API可以从互联网上直接抓取文档分析,并根据HTTP头自动识别编码:
[C#] 纯文本查看 复制代码
new JumonyParser().LoadDocument( "http://www.cnblogs.com/" ).Find( ".post_item a.titlelnk" )


三、CSS 3选择器支持
CSS选择器是HTML世界通行的查询语言,其简洁有力且被众多浏览器支持。Jumony也支持几乎完整的CSS3选择器(除去运行时伪类及伪对象)。借助选择器,我们可以轻松的在HTML中找到我们感兴趣的对象。例如抓取博客园首页所有文章标题:
[C#] 纯文本查看 复制代码
new JumonyParser().LoadDocument( "http://www.cnblogs.com/" ).Find( ".post_item a.titlelnk" )

抓取,分析,选择,一气呵成,只需要简单的代码,我们就能在控制台输出我们抓取到的数据:
[C#] 纯文本查看 复制代码
foreach( var title = new JumonyParser().LoadDocument( "http://www.cnblogs.com/" ).Find( ".post_item a.titlelnk" ) )  Console.WriteLine( title.InnerText() ); 


Jumony支持的CSS3选择器列表:
选择器描述
*选择所有元素
p a选择子代元素
p>a选择子级元素
p+a选择相邻元素
p~a选择后继元素
[attr]属性存在选择
[attr=value]属性值精确匹配
[attr~=value]属性值近似匹配
[attr^=value]属性值开头匹配
[attr*=value]属性值包含匹配
[attr$=value]属性值结尾匹配
[attr!=value]属性值否定匹配
:not否定伪类
:only-child唯一子元素伪类
:only-of-type唯一类型伪类
:empty空元素伪类
:nth-child结构化伪类
:nth-last-child结构化伪类
:nth-of-type结构化伪类
:nth-last-of-type结构化伪类
:first-child结构化伪类
:last-child结构化伪类
:first-of-type结构化伪类
:last-of-type结构化伪类

案例源码下载:
快速抓取数据组件Demo.rar (138.52 KB, 下载次数: 1436)

作者: 贱贱的贱贱    时间: 2016-5-19 19:59
顶!d=====( ̄▽ ̄*)b 无敌干货
作者: 97648077    时间: 2016-5-20 10:23
papapapa
作者: 无事要生非    时间: 2016-5-22 15:01
必须要顶一个,下载了,谢谢
作者: testinfo123    时间: 2016-5-23 17:04
习惯移植于JSoup的NSoup 简单好用
作者: tangheng1128    时间: 2016-5-23 18:03
不错哟!
作者: chen7ang    时间: 2016-5-28 10:38
不错,学习学习
作者: logo005    时间: 2016-5-30 17:53
好东西啊,一定要学习一下,准备做个舆情搜集的
作者: qq385723790    时间: 2016-5-30 22:00
这个和Csquery比谁更有优势呢?
作者: 乔克斯    时间: 2016-5-31 09:04
qq385723790 发表于 2016-5-30 22:00
这个和Csquery比谁更有优势呢?

如果Csquery支持2.0,呢么Csquery更有优势。
作者: piikee    时间: 2016-6-3 18:05
免费必须顶
作者: tangheng1128    时间: 2016-6-4 12:22
在哪儿下载呀
作者: 乔克斯    时间: 2016-6-5 13:44
tangheng1128 发表于 2016-6-4 12:22
在哪儿下载呀

帖子上有附件下载。
作者: yjl114113    时间: 2016-7-12 10:51
习惯移植于JSoup的NSoup 简单好用
作者: zhangduo    时间: 2016-7-17 18:10
好东西,学习一下怎么使用
作者: rvhome    时间: 2017-1-2 20:29

必须要顶一个,下载了,谢谢
作者: 万校长    时间: 2017-3-6 14:36
抓取的时候返回
远程服务器返回错误: (500) 内部服务器错误。
作者: wesson2016    时间: 2017-3-7 09:11
楼主辛苦
作者: uplh    时间: 2017-6-15 18:00
感觉速度不是很快啊 难道我网速?
作者: 背道而驰丨    时间: 2017-8-26 16:14
Jumony类库怎么请求 异步数据那?
作者: puremilk    时间: 2017-11-1 16:43
感谢分享。。。。。。。。
作者: succfu22    时间: 2018-2-24 23:35
谢谢,我正在整理,到时会把类库发布
作者: cty901    时间: 2018-5-28 20:17
好东西就要支持!
作者: superghy    时间: 2019-1-20 22:44
有类库源码吗,免费的吗
作者: letto881    时间: 2019-1-23 09:13
顶!d=====( ̄▽ ̄*)b 无敌干货
作者: 山水美    时间: 2019-3-9 10:26
好东西,必须顶!
作者: jacksonwong    时间: 2019-5-25 12:41
感谢分享!
作者: 无醉    时间: 2019-6-14 17:13
感谢分享  学习了
作者: xiaosen888m    时间: 2019-6-27 07:53
不错~~~~~~~~~~~~~~~~~~~~~
作者: fredZhu    时间: 2023-10-10 09:28
好东西,支持一下




欢迎光临 CSkin博客 (http://bbs.cskin.net/) Powered by Discuz! X3.2