`
yy8354
  • 浏览: 80413 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

聊聊网页正文提取

阅读更多

从网页中提取的正文一般来说模板是最好最准确的方式,在专业术语中就是wrapper,对web归纳总结出提取规则创建包装器wrapper。但由于在大多数条件下制作模板是个很烦人的工作,而且如果抓取的种子站过多,人工难以满足需求。于是自动生成模板就成为一个折衷的替代方案,但实际上自动生成的模板还是需要模板编辑确定具体的对应项,以保证其正确性。如果从语法分析去考虑,这个部分不参与人工,目前还没看到有成功的案例。
在垂直搜索中,目前看到的大多以模板为主。但由于我所做的项目虽然是垂直搜索,项目需求却要求尽可能的保证系统的通用性,于是通用正文提取就成了我必须的工作。在通用正文提取方面,JAVA开发的一个开源项目GATEhttp://gate.ac.uk/,历经几年,效果不错,也可处理中文。可惜我是玩.NET的只能靠自己了。由于项目时间紧,第一版本我采用的是定义规则的方式来完成页面内容的提取,我所需要处理的页面主要分为BLOG BBS 新闻资讯三类。一般来说在BLOG和新闻资讯中,正文内容汉字较多,而且位置集中,而广告,相关新闻,其他无用内容则为简短的汉字并本身为超级链接。因此通过此类规则推理,削除了大多数的垃圾信息及广告。但对于全英文的正文来说,这种推理就豪无意义了,幸而我的需求只需要满足中文网页。不过这种规则定义要求尽可能的满足绝大多数网页内容的规范,因此造成除了正文以外还有部分垃圾信息未被过滤。这时候就可以考虑使用噪音词过滤的方法,在互联网上的页面中,很多词汇会频繁大量出现而且与正文毫无关系,在噪音词占句子比例超过阀值的情况下,可以直接过滤句子。通过以上两种方式加上处理HTML标签的正则就能处理80%以上的新闻资讯和BLOG页面,提取相对干净的正文内容。我所用到的正则可参考:http://blog.likeshow.net/article.asp?id=55
不过以上这种方式主要以句子为单位考查web页面内容,没有很好的利用到HTML标签块的分割作用,其实一般在解析整个web页面为DOM树时,正文内容肯定包含在其中一个节点内,而这个节点往往是汉字内容最多的,再考虑邻居节点内与其的关系,就可取到标题。目前我正在尝试使用DOM解析方式来提取正文,.NET下有个开源的HTML解析组件HtmlAgilityPack,可以考虑使用,不过对于页面编码处理方面有个小BUG,可自行改正。
其实在正文提取时,还有很多比较特殊的问题,如动网论坛早期的版本采用JS输出内容,某些网站正文内容放在JS变量里,都是不太好用以上两种方式处理的。引入JS解析或直接使用WEBBROWSER控件也许是更好的解决方式,不过效率。。。。。。。。 

 

 

 

2
0
分享到:
评论
2 楼 xuzhibin 2012-07-04  
这里也有一个识别率还可以正文提取算法,有兴趣的同学可以去看看:http://www.qwolf.com/?p=791
1 楼 kg_1997 2010-04-18  
目前互联网上公布出来的正文提取算法,大家可以综合比较下,一起来测试下哪个更好用。



词网--北京词网科技有限公司
http://demo.cikuu.com/cgi-bin/cgi-contex



猎兔网页正文提取
http://www.lietu.com/extract/



PHP版网页正文提取
http://www.woniu.us/get_content_demo/



网页正文提取分析(DEMO)
http://61.128.196.27/txt



个人认为http://61.128.196.27/txt 这个提取最牛,基本上无论什么页面都能提取出来,而且能有效的保持原文风格、图片、链接。

相关推荐

    基于规则模型的通用网页正文提取组件

    <br>该组件内部算法主要应用了规则模型抽取,所有规则基本使用正则表达式实现,具体正则可参考我的BLOG上《正文抽取正则》以及《聊聊网页正文抽取》内容。 ...

    用Python聊聊北京生活成本之高,生活之不易!

    标题中的“用Python聊聊北京生活成本之高,生活之不易!”揭示了我们将使用Python编程语言来探讨和分析北京高昂的生活费用。在这个过程中,我们可能会涉及数据获取、数据处理和数据分析等技术。 首先,Python是一种...

    PHP+node采集58微聊聊天信息

    3. **网页解析**:在获取HTML响应后,我们需要解析页面以提取聊天内容。这通常涉及到DOM解析,可以使用Node.js的`cheerio`库(类似于jQuery)或PHP的`DOMDocument`类。找到包含聊天信息的元素,然后提取文本。 4. *...

    (精选)最新115网盘下载方法.pdf

    等待所有视频下载完毕后,回到网盘网页版,删除已下载的文件,并清空回收站。这样,你的15GB存储空间就会被释放出来。 (3)重复以上步骤,依次接收并下载剩余的文件夹,直到所有文件都下载完成。 为了确保顺利...

    MostransautoApp:Mostransavto.ru 提取器-开源

    2. **数据解析与存储**:解析网页结构,提取所需数据,可能涉及到 HTML 和 CSS 解析,以及可能的 JSON 或 XML 数据处理。数据可能存储在本地数据库(如 SQLite)或云端。 3. **跨平台开发**:尽管提供的文件名 ...

    活码自动进群V1.0.0代码全开源

    4. **数据库管理**:为了记录二维码的使用情况和群聊信息,项目需要一个数据库来存储这些数据。数据库设计可能包括二维码ID、创建时间、过期时间、扫描次数以及与之关联的微信群ID等字段。 5. **微信API接口**:与...

    好用的视频下载客户端还有在线视频下载软件.rar

    在线视频下载软件则是在网页端使用的工具,它们可能是网页插件或在线服务,帮助用户将视频从网站上提取出来。例如,KeepVid、ClipConverter等都是知名的在线视频转换和下载工具。这些工具通常不需要用户安装任何软件...

    青城交友系统 v3.0 豪华版-ASP源码.zip

    ASP是微软公司推出的一种服务器端脚本环境,用于创建动态交互式网页。这个源码豪华版意味着它可能包含了更多的功能和优化,适用于构建一个完善的社交网络服务。 该系统的实现主要依赖于ASP语言,这是一门较老但仍然...

    Python实现网络爬虫

    2. **BeautifulSoup**:这是一个HTML和XML的解析库,它能够帮助开发者解析和导航网页结构,方便提取所需信息。 3. **Scrapy**:这是一个高级的爬虫框架,提供了完整的爬虫项目管理、数据处理和存储等功能,适用于大...

    PHP采集器Snoopy详解

    4. **链接提取**:`fetchlinks`方法则用于提取网页中的所有链接。 5. **代理支持**:Snoopy允许通过代理服务器进行网络访问。 6. **身份验证**:支持基本的用户名和密码验证。 7. **HTTP头信息设置**:可以自定义`...

    iapp源码大全【98个】.rar

    [源码]网页辅助.iapp [源码]网址文字简略提取.iapp [源码]文字加密:iapp , [源码]源码手册iapp , [源码]源码手册重蛋:iapp [源码]注册实例(更正) .iapp [源码]左菜单iapp 2048滑动版_@星辰iapp 2048_ 滑动版_@星辰....

    RegularExpressionTest_正则表达式工具.7z

    而在Web爬虫开发中,正则表达式常用来匹配和提取网页中的目标信息,配合BeautifulSoup等库可以实现高效的网页抓取。 正则表达式工具如"RegularExpressionTest"可以帮助开发者快速测试和调试正则表达式,避免在实际...

    movie_nodes:制作一个不断填充的网页。 将探索来源

    使用和 ,该脚本提取了 10 个近亲电影并制作了一个力有向图。 您还可以单击该节点以转到电影的 IMDB 页面(您可以通过这种方式遇到一些令人难以置信的晦涩电影...)它以任意单词开头(在本例中为mile ),一个不错...

    ctfileGet:获取城通网盘一次性直连地址

    直连地址,也称为直接下载链接,是指可以直接通过浏览器或下载管理器访问的URL,无需经过额外的网页交互步骤。在城通网盘中,通常需要用户登录并进行点击操作才能启动下载,但一次性直连地址则绕过了这个过程,使得...

    微信机器人

    微信提供了微信公共平台和微信网页版API,开发者可以利用这些接口来实现自动化操作。微信机器人通常基于微信官方提供的WeChat SDK,例如itchat库,这是一个Python编写的微信个人号SDK,支持微信的登录、消息收发、...

    基于Python开发的基金筛选器爬虫

    1. **爬虫**:爬虫是程序自动抓取网页信息的技术,这里指的是用于获取基金数据的工具。 2. **Python**:Python是编程语言,本项目采用Python进行开发,体现了其易读性、丰富的库支持和强大的网络处理能力。 3. **...

    基于Python爬虫实现的的基金筛选器:源码+可执行文件

    在这个基金筛选器中,Python的requests库用于发送HTTP请求获取网页内容,BeautifulSoup或lxml库用于解析HTML或XML文档,提取所需的数据。爬虫需要遵循网站的robots.txt协议,并处理可能出现的反爬策略,如验证码、IP...

    华为 HUAWEI E176G WCDMA 无线数据终端 驱动

    店主测试,在不停的浏览网页、收取工作邮件、聊QQ/MSN等日常网上活动,每小时消耗10M流量,3G流量可保持300小时上网。 转载:“联通包流量计费真的很好,对于投资炒股、商务出差、休闲旅游、娱乐游戏一族来说,...

    GoogleAnalyticsBundle:Google Analytics(分析)捆绑软件可让您将数据(例如事件跟踪)发送给Google

    它可以是网页浏览量,事件等数据。它是的捆绑实现这不是一个从Google Analytics(分析)提取数据的库。 该功能已从classic-analytics分支中弃用。 主分支和版本3及更高版本将支持Google Analytics(分析)通用版。...

    Web爬虫后端

    【Web爬虫后端】是实现自动化数据抓取的关键部分,尤其在JavaScript环境中,它涉及到一系列的技术和工具,用于从Web页面中提取所需信息。在本文中,我们将深入探讨Web爬虫后端的重要概念、技术和实践,以帮助你构建...

Global site tag (gtag.js) - Google Analytics