ASP中,能否使用mshtml等,处理html得到并分析DOM树
使用ASP,得到一网页的源代码。现希望用ASP分析源代码,找出该网页的正文文本。
实现这一功能,目前常见的做法是 通过分析网页文本密度,找出正文区域。
JAVA等一般都有htmlparser等开源的解析器,得到DOM树后,分析找到正文所在节点
ASP下,如何找出网页正文文本?
ASP中,能否使用mshtml或其他什么组件等,处理html得到并分析DOM树??
或 其他方法、思路, 请不吝赐教,多谢。
[解决办法]
html不是一棵dom树吗?
[解决办法]
一份合法的html就是一份良构的xml?至少对xhtml如此
[解决办法]
有第三方方相关COM组件的,只是不是很强大.
[解决办法]
msxml试过了吗
[解决办法]
抓取页面,使用正则,得到正文
[解决办法]
抓取页面,用正则才是正道,正则比用解析htmldom组件 效率高多了
就是不知道,正则如何实现 从一内容页里,找出正文 ??
正则如果能实现,当然是最好了。
id class 这些,不同网站,都不同了,可能很难用得上。那种采集系统,我一直在用,十几年前优化到现在,目前想实现无规则采集。用正则实现还没有什么思路。正则应该能实现按行分析,但不知道如何提取节点信息。如果实现不了,需要用asp写一个html 解析函数,根据w3c,估计难度不会小。
抓取页面,使用正则,得到正文
不同的网站,模板不同。可能正则就不同了。
我是希望找到一种方法,能采集sina 的页面,也能采集sohu的。而不需要去改程序,或正则。需要自动识别出正文。
只能可惜的告诉你,这想法不太现实,我想问你,就算你能分析成树了,你又如何确定不同网址不同网页他的内容,你怎么知道哪些才是他的正文?html的标签是什么里都可以放的,不一定是正文才能放
感谢版主亲自回复。
我的想法,应该是有一定可行性的。前期调研来看实现的思路至少有3种。其实他们的算法都比较成熟了,比如搜索引擎,或一些爱好者开发的爬虫程序。都是不需要设置采集规则的,爬虫能自动完成数据清理。
常见的就是分析DOM树,文本密度算法+链接密度算法,某节点下文本密度高,文本字数大于100等阀值,这个节点根据文本和链接密度,会有一个权重,他的兄弟权重+一起,就是父节点权重。权重高的父节点最可能是正文区域,可确定正文大致区域,正文节点基本在同一父节点,再判断下父节点的兄弟,一般都锁定正文了。结合一些边界阀值判断去掉正文里的SCRIPT 广告 这些。结合什么神经网络算法(他们说的),让程序能自动调整一些边界阀值,能把网页正文,甚至正文下面的评论内容都过滤出来。如果2个或多个区域的权重阀值都达到某一经验值,多个区域都算正文。
已经有不少小偷采集程序,都这么搞了,不需设置采集规则。
他们仅仅通过一页,就能抓出正文。准确性不可能100%,但如果不是专门特殊构造的正文,一般是逃不过程序的判断的。我希望在试采集阶段,分析多个页面,得出网页的模板,自动生成采集规则。以便后面在程序无法抓出正文的时候,调用该网站的采集规则来过滤模板。力争将准确性由99.9999%提高到100%
Http.responseTEXT已经获取到了HTML源码,不知道ASP怎么来分析这棵树? 求指点。
组件用IE组件 internetexplorer.application
不好意思前没看到,用正也可以分析dom结构
不知道怎么分析
组件用IE组件 internetexplorer.application
不好意思前没看到,用正也可以分析dom结构
不知道怎么分析
你想要的一些标签的密度位置,你可以把HTML文档看与一维数组一条线
用正则取出标签的位置,你再根据一些标签的位置密度来分析
<\w+[^>]+> 标签开始
<\/w+\s*>标签结束
正则能作一些简单分析。但HTML不确定,标签也不特定,<divXXXXX这样式的X还不确定>,可能出现嵌套等,处理配对或不配对标签,感觉非常困难,分析DOM可能简单些。ASP下分析DOM树的方法或组件,求帮助??