首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > ASP >

ASP中,可不可以使用mshtml等,处理html得到并分析DOM树

2014-01-05 
ASP中,能否使用mshtml等,处理html得到并分析DOM树使用ASP,得到一网页的源代码。现希望用ASP分析源代码,找出

ASP中,能否使用mshtml等,处理html得到并分析DOM树
使用ASP,得到一网页的源代码。现希望用ASP分析源代码,找出该网页的正文文本。

实现这一功能,目前常见的做法是 通过分析网页文本密度,找出正文区域。
JAVA等一般都有htmlparser等开源的解析器,得到DOM树后,分析找到正文所在节点

ASP下,如何找出网页正文文本?
ASP中,能否使用mshtml或其他什么组件等,处理html得到并分析DOM树??

或 其他方法、思路, 请不吝赐教,多谢。
[解决办法]
html不是一棵dom树吗?
[解决办法]
一份合法的html就是一份良构的xml?至少对xhtml如此
[解决办法]
有第三方方相关COM组件的,只是不是很强大.
[解决办法]
msxml试过了吗
[解决办法]
抓取页面,使用正则,得到正文
[解决办法]

引用:
Quote: 引用:

抓取页面,使用正则,得到正文


不同的网站,模板不同。可能正则就不同了。

我是希望找到一种方法,能采集sina 的页面,也能采集sohu的。而不需要去改程序,或正则。需要自动识别出正文。

只能可惜的告诉你,这想法不太现实,我想问你,就算你能分析成树了,你又如何确定不同网址不同网页他的内容,你怎么知道哪些才是他的正文?html的标签是什么里都可以放的,不一定是正文才能放
[解决办法]
你的要求太高了,不现实
[解决办法]
抓取页面,用正则才是正道,正则比用解析htmldom组件 效率高多了
[解决办法]
搜索引擎,或一些爱好者开发的爬虫程序
它们获取的是整个页面中的文字内容,而不是你说的正文。如果你要获取这种内容的话,你的想法是可以现实的。
[解决办法]
引用:
Quote: 引用:

抓取页面,用正则才是正道,正则比用解析htmldom组件 效率高多了


就是不知道,正则如何实现 从一内容页里,找出正文 ??
正则如果能实现,当然是最好了。

正则能不能找的到,是写正则的问题,通过正则取肯定可以的
一般也是根据标签的 ID,class来定位的
象一些抓新闻,小说的工具也都是通过s配置正则,一个网站对应一个正则
[解决办法]
引用:
 
id class 这些,不同网站,都不同了,可能很难用得上。那种采集系统,我一直在用,十几年前优化到现在,目前想实现无规则采集。用正则实现还没有什么思路。正则应该能实现按行分析,但不知道如何提取节点信息。如果实现不了,需要用asp写一个html 解析函数,根据w3c,估计难度不会小。

我不明白你的意思 "目前想实现无规则采集", 即使你用分析整个文档的节点结构,也要有 规则来定位,
就像你说的 "id class 这些,不同网站,都不同了"
[解决办法]
组件用IE组件 internetexplorer.application
不好意思前没看到,用正也可以分析dom结构

[解决办法]
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

抓取页面,使用正则,得到正文


不同的网站,模板不同。可能正则就不同了。

我是希望找到一种方法,能采集sina 的页面,也能采集sohu的。而不需要去改程序,或正则。需要自动识别出正文。

只能可惜的告诉你,这想法不太现实,我想问你,就算你能分析成树了,你又如何确定不同网址不同网页他的内容,你怎么知道哪些才是他的正文?html的标签是什么里都可以放的,不一定是正文才能放





感谢版主亲自回复。

我的想法,应该是有一定可行性的。前期调研来看实现的思路至少有3种。其实他们的算法都比较成熟了,比如搜索引擎,或一些爱好者开发的爬虫程序。都是不需要设置采集规则的,爬虫能自动完成数据清理。

常见的就是分析DOM树,文本密度算法+链接密度算法,某节点下文本密度高,文本字数大于100等阀值,这个节点根据文本和链接密度,会有一个权重,他的兄弟权重+一起,就是父节点权重。权重高的父节点最可能是正文区域,可确定正文大致区域,正文节点基本在同一父节点,再判断下父节点的兄弟,一般都锁定正文了。结合一些边界阀值判断去掉正文里的SCRIPT 广告 这些。结合什么神经网络算法(他们说的),让程序能自动调整一些边界阀值,能把网页正文,甚至正文下面的评论内容都过滤出来。如果2个或多个区域的权重阀值都达到某一经验值,多个区域都算正文。


已经有不少小偷采集程序,都这么搞了,不需设置采集规则。
他们仅仅通过一页,就能抓出正文。准确性不可能100%,但如果不是专门特殊构造的正文,一般是逃不过程序的判断的。我希望在试采集阶段,分析多个页面,得出网页的模板,自动生成采集规则。以便后面在程序无法抓出正文的时候,调用该网站的采集规则来过滤模板。力争将准确性由99.9999%提高到100%


Http.responseTEXT已经获取到了HTML源码,不知道ASP怎么来分析这棵树?  求指点。


呵呵,你可以去下载一些你认为不需要采集规定想小偷程序来看看就知道了

至于你说的爬虫一类的,怎么说呢,那是他自己的一套算法,是网站必须符合他的算法,很多网站为了提高自己的让该搜索引擎收录,以及提高权重,不得不按他的规则去做这些正文,故而这类抓取正文就好多了,一但不符合他这个规则的那么他可能就不收录或者没权重,这点你也从不同的搜索引擎对同一个网站他却有不同的收录效果以及不同的权重能分析得出来吧,但是你所要做的不同吧,你要做的是采集别人的页面,假如你采集的某个网站他的正文并不符合你所设定的规则,你是要采集还是不要采集呢?如果采集,也许这部分信息极可能不是正文。
[解决办法]
当然,搜索引擎他们或多或少会有一些部分类似或者相同的算法,这也可以说是一个web的一些共性吧
[解决办法]
引用:
Quote: 引用:

组件用IE组件 internetexplorer.application
不好意思前没看到,用正也可以分析dom结构


不知道怎么分析

你想要的一些标签的密度位置,你可以把HTML文档看与一维数组一条线
用正则取出标签的位置,你再根据一些标签的位置密度来分析
<\w+[^>]+> 标签开始
<\/w+\s*>标签结束
 




[解决办法]
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

组件用IE组件 internetexplorer.application
不好意思前没看到,用正也可以分析dom结构


不知道怎么分析

你想要的一些标签的密度位置,你可以把HTML文档看与一维数组一条线
用正则取出标签的位置,你再根据一些标签的位置密度来分析


<\w+[^>]+> 标签开始
<\/w+\s*>标签结束



正则能作一些简单分析。但HTML不确定,标签也不特定,<divXXXXX这样式的X还不确定>,可能出现嵌套等,处理配对或不配对标签,感觉非常困难,分析DOM可能简单些。ASP下分析DOM树的方法或组件,求帮助??

推荐你用正则
 正则是可以分析嵌套的,JS,vbs 的正则好像不好做嵌套配对的,你可能自己多判断一遍
先取 标签名,位置,再循环一遍分析出标签的,配对

用组件,可以用 internetexplorer.application,最好先把 img,css,js,ifram 去掉
[解决办法]
可以到csdn的项目中发布。如果不想出钱就别去了

热点排行