C# 请教解析HTML的思路方法

hzj820804 2013-04-07 11:54:53
要做一个新闻搜索的类库,主要功能是:从各大主流媒体或RSS获取最新的新闻信息,根据网址去下载对应的新闻网页,从网页的HTML代码进行搜索,抽取出正文内容,存库备档。现在前面部分都做完了,包括解析HTML,主要的问题还是在如下:

每一个新闻媒体的网站(如新浪,网易等)格式都不一样,也就是每一个网站的HTML正文标示也是不统一的,怎么从HTML里面辨别出正文来有点搞不明白思路。
现在计划用一种很笨的方法,大量的去搜集各大新闻网站的HTML代码,记住每一个网站的正文部分各自的标示,然后在程序里每一次去抽取网页新闻正文时,都先判断是什么网站,然后调用对应的方法来抽取。
如果这样做,那工作量和重复性就好大了,网络上的新闻媒体少说几百个不止.....

请问下各位有经验的前辈,有什么办法来做到判断一段HTML里面的正文部分吗?一个统一的方法,或者说正文在整个HTML里面,有没有存在什么同性?


对HTML不甚熟悉,各位见笑了
...全文
155 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
三五月儿 2013-04-08
  • 打赏
  • 举报
回复
同样推荐火车头采集器 http://baike.baidu.com/view/1248321.htm
hzj820804 2013-04-08
  • 打赏
  • 举报
回复
回2楼,一个站点就是一个规则,就是我们目前想采用的方法,只是工作量好大···
hzj820804 2013-04-08
  • 打赏
  • 举报
回复
3楼的,有些正文类似公告这种,是很简短的甚至比广告还短,如果用这种方法不大适用。
showjim 2013-04-08
  • 打赏
  • 举报
回复
很久以前做过一个自动识别的,不过程序早就丢了,隐隐约约记得一些。 首先HTML解析器是要有一个的,然后就是节点间文字数量的比重,节点间标点符号的数量比重,顶级节点的深度指数。 至于具体的细节想不起来了,只能提供这些参考了。
md5e 2013-04-08
  • 打赏
  • 举报
回复
火车头采集,一个站点就是一个规则,NetCMS里也有一个采集,做得也蛮好的,可以下源码来看看
hzj820804 2013-04-08
  • 打赏
  • 举报
回复
没人来瞧瞧?
showjim 2013-04-08
  • 打赏
  • 举报
回复
引用 4 楼 hzj820804 的回复:
3楼的,有些正文类似公告这种,是很简短的甚至比广告还短,如果用这种方法不大适用。
是的,我记得当时的正确率不到90%。 但是一个网站(通常用path标识)不会就一篇文章吧,我多爬几个样本(比如10个),然后用程序分析这10个样本的主要特征(一种学习机制),这样就行了。 这样会有一个新问题,就是对方网站改版了怎么办?当同一个path页面1,2方案分析结果矛盾超过一定数量的时候,重新爬样本重新分析。
XiAnTianYiChuanMei 2013-04-08
  • 打赏
  • 举报
回复
是的 ,不能通用的,现在所有的采集器都是一个站一个规则,,,用的是正则表达式,我昨天刚写了一个 代理IP 的实时采集程序,,,你要不要看一下http://www.aaspx.com/thread-158-1-1.html。。。应该对你的采集器代码有帮助!!!!!

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧