网页正文提取
使用特征文本密度的网页正文提取

tx r p rin a d d n i , u d ni e h o tn n o main a c rtl.h to a ah r lw i e a d s a e o - e tp o o t n e s t s ie t s te c ne tifr t c u aeyT e meh d h s rte o t n p c c r o y t h i f o m n pe i . p r ns h w h t i cn e ta tc ne t ifr ain e e t ey fo lxt Ex ei t y me s o ta t a x c o tn n o r m t f ci l rm c mpe d mut tpc we a e d h s o v o lx a l—o i b p g s a a n i n a wie a p ia it. d p l bl c i y Ke r s tx e st ;e tfaue; fr t n e ta t n; b p g y wo d : e td n i tx e tr i omai xrci we a e y n o o
关键词 : 文本 密度 ; 本特 征 ; 息抽 取 ; 文 信 网页 D 0 7 8 . s. 0 —3 1 0 02 .0 文 章编 号 :028 3 (0 0 2 -0 10 文 献 标 识 码 : Oh1. 7 /i n1 28 3 . 1.0 1 3 js 0 2 0 10 —3 12 1 ) 00 0 —3 A 中 图 分 类 号 : P 9 T 33
C m ue n i ei n A p i t n  ̄ 算机工程与应用 o p t E gn r ga d p l ai s f r e n c o
2 1 ,6 2 ) 0 04 ( 0
从html中提取正文的方法

从html中提取正文的方法从HTML中提取正文的方法随着互联网的发展,网页内容呈现多样化的趋势,其中HTML是最常见的网页编程语言之一。
但是在浏览网页的过程中,我们往往只关注页面的主要内容,即正文部分。
如何从HTML中提取出正文内容,成为了一个非常重要的问题。
本文将介绍几种常用的方法来实现这一目标。
一、基于标签的提取方法HTML文档通常由一系列的标签组成,不同的标签有不同的作用和语义。
在提取正文时,我们可以根据标签的特点来进行筛选。
常用的标签有p、div、span等,这些标签通常用来包裹正文内容。
我们可以通过解析HTML文档,找到这些标签,并提取出其中的文本内容。
同时,我们还可以根据标签的属性进行筛选,比如class属性、id 属性等。
通过这种方法,我们可以较为准确地提取出正文内容。
二、基于文本密度的提取方法正文通常具有较高的文本密度,即正文部分的文字数量较多。
而其他非正文的内容,比如导航栏、广告等,通常具有较低的文本密度。
基于这个特点,我们可以通过计算页面中每个标签的文本密度,来判断其是否属于正文内容。
具体的方法可以是统计标签内文本的字符数或词数,然后除以标签的总字符数或词数,得到文本密度的比值。
根据这个比值的大小,我们可以判断标签是否为正文内容。
通过这种方法,我们可以较为准确地提取出正文内容。
三、基于机器学习的提取方法除了基于标签和文本密度的方法,还可以利用机器学习的方法来提取正文内容。
通过训练模型,我们可以将HTML文档中的各个标签和属性作为特征,将其对应的正文内容作为标签,然后利用已有的正文和非正文数据进行训练。
训练完成后,我们可以使用这个模型来预测新的HTML文档中的正文内容。
这种方法的优势在于可以适应不同的网页结构和样式,提取效果较为准确。
从HTML中提取正文内容是一个比较复杂的问题,但是通过合理的方法和技术手段,我们可以实现较为准确地提取。
基于标签、文本密度和机器学习的方法都具有一定的优势和适用场景,可以根据实际需求选择合适的方法。
website extractor使用方法

website extractor使用方法1. 引言1.1 什么是website extractorWebsite Extractor是一种用于提取网站数据的工具,它能够自动化地从网页中抓取所需的信息,并将其转化为结构化数据。
通过使用Website Extractor,用户可以快速准确地收集大量网站上的数据,而无需手动复制粘贴或者浏览多个页面。
这个工具通常使用在数据挖掘、市场调研、竞争分析等领域,能够帮助用户节省大量时间和精力。
Website Extractor利用网络爬虫技术,可以访问并解析网页上的各种信息,如文本、图片、链接等。
用户可以通过设定特定的规则和筛选条件,来提取他们感兴趣的数据,并将其保存或导出到本地文件或数据库中。
这种工具通常具有界面友好,操作简单的特点,让用户可以快速上手并开始进行数据提取工作。
Website Extractor是一种强大的数据采集工具,能够帮助用户轻松获取网站上的信息,提高工作效率。
通过合理的配置和使用,用户可以满足各种网站数据提取需求,从而得到更多有用的信息和见解。
1.2 website extractor的作用1. 网站内容获取:Website extractor可以帮助用户快速准确地从网站中抓取所需的信息,无需手动复制粘贴,大大提高了工作效率。
2. 数据分析:通过使用website extractor,用户可以轻松地对提取的数据进行分析和处理,从而获取更多有用的信息和洞察。
4. 市场研究:对于市场研究人员来说,使用website extractor可以快速获取市场上的信息,帮助他们更好地制定营销策略和决策。
website extractor的作用在于帮助用户快速准确地从网站中提取数据,进行数据分析和处理,帮助用户更好地了解市场和竞争情况,从而帮助他们做出更明智的决策。
2. 正文2.1 website extractor的安装步骤1. 下载安装程序:需要从官方网站或其他可信任的来源下载website extractor的安装程序。
基于CPN网络的Web正文抽取技术研究

由于 非监督式 训练算 法不需要 输入理 想输出值, 因此 CPN 网络在隐藏层执 行非监督 式训练 算法, 以解 决 BP 网络在训练中进行 隐藏层联 结权值 调整 时理想 输 出未知的 问题, 用 监督式训 练算法 解决输出 层按系 统要求给出指定输出结果的问题。
正是 由 于以 上 特性, CPN 网 络 的训 练 速 度 比 BP 网 络要 快得 多, 所 需时间 大约 是 BP网 络所 需时 间的 1% , 这在需要对大量网页进行训练的文本 抽取过程中 是十分重要 的。不 过 CPN 网络 由于 其网 络 性能 问题 应用面比较狭窄, 通常在模式识别、模式完 善以及信号 加强等方面表现较好。 2. 3 模式编码
应用中可能还会增加更多的规则, 因此, 基于 视觉 W eb B lock分析法 目 前还 停 留在 理 论层 面 上, 有 待 实 践的 检验。
2 基于文本密度的页面文本抽取研究
本文的研究对象是新闻类页面以及类 似布局页面
(比如博客 页面, 以下 统称 内容 页面 ) 正 文 的抽 取, 可 以采用简单的链接密度为指标来区分内容 页面和链接
( 1 )基于模板的方法。这种方法使用包装器 (W rapper) 来抽取网 页中感兴趣的 内容。包装 器是一 个程序, 该 程序基于页面的布局特征, 针对特定的一组页面, 编写分析器, 解析出正文在页面中的位置。
这种方法的优点是实现简单, 文本抽取的准确 率极高。缺 点是必须 针对特 定网站的 特定栏 目编写专 门的包 装器, 因此通用性很差, 不适合大规模页面的抽取; 另 外页面 布局一旦 发生变 化, 哪怕是 十分微 小的变化, 都会使 原有的分析器失效, 必须重新修改分析器, 如果包装器的数量很大, 代码维护的代价也会相应增加。
网页内容如何批量提取

网页内容如何批量提取网站上有许多优质的内容或者是文章,我们想批量采集下来慢慢研究,但内容太多,分布在不同的网站,这时如何才能高效、快速地把这些有价值的内容收集到一起呢?本文向大家介绍一款网络数据采集工具【八爪鱼数据采集】,以【新浪博客】为例,教大家如何使用八爪鱼采集软件采集新浪博客文章内容的方法。
采集网站:/s/articlelist_1406314195_0_1.html采集的内容包括:博客文章正文,标题,标签,分类,日期。
步骤1:创建新浪博客文章采集任务1)进入主界面,选择“自定义采集”2)将要采集的网址URL复制粘贴到网站输入框中,点击“保存网址”步骤2:创建翻页循环1)打开网页之后,打开右上角的流程按钮,使制作的流程可见状态。
点击页面下方的“下一页”,如图,选择“循环点击单个链接”,翻页循环创建完成。
(可在左上角流程中手动点击“循环翻页”和“点击翻页”几次,测试是否正常翻页。
)2)由于进入详情页时网页加载很慢,网址一直在转圈状态,无法立即执行下一个步骤,因此在“循环翻页”的高级选项里设置“ajax加载数据”,超时时间设置为5秒,点击“确定”。
步骤3:创建列表循环1)鼠标点击列表目录中第一个博文,选择操作提示框中的“选中全部”。
2)鼠标点击“循环点击每个链接”,列表循环就创建完成,并进入到第一个循环项的详情页面。
由于进入详情页时网页加载很慢,网址一直在转圈状态,无法立即执行下一个步骤,因此在“点击元素”的高级选项里设置“ajax加载数据”,AJAX超时设置为3秒,点击“确定”。
3)数据提取,接下来采集具体字段,分别选中页面标题、标签、分类、时间,点击“采集该元素的文本”,并在上方流程中修改字段名称。
鼠标点击正文所在的地方,点击提示框中的右下角图标,扩大选项范围,直至包括全部正文内容。
(笔者测试点击2下就全部包括在内了) 同样选择“采集该元素的文本”,修改字段名称,数据提取完毕。
4)由于该网站网页加载速度非常慢,所以可在流程各个步骤的高级选项里设置“执行前等待”几秒时间,也可避免访问页面较快出现防采集问题。
绿色网络网页正文内容提取算法

绿 色网络 网 页正 文 内容提 取 算 法
龙 珑1 ,邓 伟
( 1 . 广 西师范 学院 计算机 与信 息工 程学 院 ,南 宁 5 3 0 0 2 3 ;2 . 广西 肿瘤 防治研 究所 ,南宁 5 3 0 0 2 1 )
po o r c o n t e n t . I n o r d e r t o s o l ve t hi s pr o b l e m, t hi s p a p e r p r o po s e s a t e x t c o n t e n t e x t r a c t i o n a l g or i t h m f o r g r e e n n e t wo r k we b pa g e . I t u s e s t h e
il f t e r h a r mf u l We b p a g e s .Ex pe r i me n t a l r e s u l t s s h o w t ha t ,a te f r op t i mi z e d b y n e w a l g o r i t hm,t he a c c u r a c y r a t e of i de n t i f y i n g h a r mf u l
we b p a g e i s 8 6 . 9 %, t h e r e c a l l r a t e i s 9 5 . 6 %, t h e F v a l u e i s 9 1 . 0 2 %, a n d i s h i g h e r t h a n b e f o r e o p t i mi z a t i o n .
络 系统对 不 良 网页 的识 别准确 率 为 8 6 . 9 %,召 回率 为 9 5 . 6 % ,F值 为 9 1 . 0 2 % ,比优 化前 有较大 提高 。
从html中提取正文的方法

从html中提取正文的方法从HTML中提取正文的方法在网页开发和数据处理中,经常需要从HTML文档中提取出正文内容,以便进行进一步的分析和处理。
本文将介绍一些常用的方法和技巧,以帮助读者快速准确地提取出HTML文档中的正文内容。
一、使用Python的Beautiful Soup库Beautiful Soup是Python的一个HTML/XML解析库,可以方便地从HTML文档中提取出所需的信息。
下面是一个使用Beautiful Soup 提取正文的示例代码:```pythonfrom bs4 import BeautifulSoupdef extract_content(html):soup = BeautifulSoup(html, 'html.parser')content = soup.get_text()return content```在上述代码中,首先导入Beautiful Soup库,并定义了一个名为`extract_content`的函数,用于提取正文。
然后,通过调用`BeautifulSoup`类的构造函数,将HTML文档传入,并指定解析器为'html.parser'。
接下来,使用`get_text`方法提取出所有的文本内容,并将其返回。
二、使用正则表达式如果对正则表达式较为熟悉,也可以使用正则表达式来提取正文。
下面是一个使用正则表达式提取正文的示例代码:```pythonimport redef extract_content(html):pattern = r'<p>(.*?)</p>'content = re.findall(pattern, html, re.S)return '\n'.join(content)```在上述代码中,首先导入re模块,并定义了一个名为`extract_content`的函数,用于提取正文。
基于文本及符号密度的网页正文提取方法

电子设计工程Electronic Design Engineering第27卷Vol.27第8期No.82019年4月Apr.2019收稿日期:2018-07-20稿件编号:201807113作者简介:洪鸿辉(1992—),男,广东揭阳人,硕士研究生。
研究方向:大数据处理。
自互联网问世以来,经过多年的发展,互联网站点的数量在不断的增长,互联网上的信息也在不断的增加,然而,由于商业因素的问题,这些网站在为我们提供有价值的信息的同时,还会包含其他信息,例如广告或其他网站的链接。
链接可能是图片,文字。
这些相对于正文内容无用的信息会降低我们的阅读效率,而且这些无用的文字可能会被搜索引擎作为索引关键词,不仅降低了搜索的效率还影响了用户的体验。
很多互联网公司也发现了这一问题,所以现在越来越多的网页都会支持RSS 。
若一个网页支持RSS ,我们就可以很轻易的提取网页的正文内容,但大多数网页还是不支持RSS ,所以关于正文提取这一方面的研究工作一直没有停止。
网页的类型有很多种,比如新闻网站,博客网站,论坛等。
新闻类网站的正文提取一直是研究的主要方向,新闻类的文章通常要提取正文内容,标题,时间,作者等。
文章通常要提取正文内容,标题,时间,作者等。
一方面,网页正文提取结果的好坏会影响着文本聚类,去重,语义指纹等结果。
另一方面,网页正文提取在大数据时代也是一项不可或缺的环节。
1相关工作1.1VIPS2003年,微软公司亚洲研究所提出了一种网页进行视觉分块[1]算法—VIPS [2]算法。
该算法的思想是模仿人类看网页的动作,基于网页视觉内容结构信息结合Dom 树对网页进行处理。
简单的说就是把页面切割不同大小的块,在每一块中又根据块网页的内容和CSS 的样式渲染成的视觉特征把其分成小块,最后建立一棵树[3]。
但是,VIPS 必须完全渲染一个页面才能对其进基于文本及符号密度的网页正文提取方法洪鸿辉,丁世涛,黄傲,郭致远(武汉邮电科学研究院湖北武汉430000)摘要:大多数的网站的网页除了主要的内容,还包含导航栏,广告,版权等无关信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
我为开源做贡献,网页正文提取——Html2Article2014-1-7 14:38|发布者: 红黑魂|查看: 16722|评论: 4|原作者: StanZhai|来自: 博客园摘要: 为什么要做正文提取一般做舆情分析,都会涉及到网页正文内容提取。
对于分析而言,有价值的信息是正文部分,大多数情况下,为了便于分析,需要将网页中和正文不相干的部分给剔除。
可以说正文提取的好坏,直接影响了分 ...为什么要做正文提取一般做舆情分析,都会涉及到网页正文内容提取。
对于分析而言,有价值的信息是正文部分,大多数情况下,为了便于分析,需要将网页中和正文不相干的部分给剔除。
可以说正文提取的好坏,直接影响了分析结果的好坏。
对于特定的网站,我们可以分析其html结构,根据其结构来获取正文信息。
先看一下下面这张图:正文部分,不同的网站,正文所在的位置不同,并且Html的结构也不同,对于爬虫而言,抓取的页面是各种各样的,不可能针对所有的页面去写抓取规则来提取正文内容,因此需要一种通用的算法将正文提取出来。
现有的网页正文提取算法∙基于标签用途的正文提取算法(比如title或h1,h2标签一般用作标题,p一般表示正文段落,根据标签的含义去提取正文)∙基于标签密度判定(这个简单,说白了就是字符统计,正文部分html标签的密度比较低,确定一个阈值,按照标签密度提取正文部分)∙基于数据挖掘思想的网页正文抽取方法(这里会涉及到统计学和概率论的一些知识,在高深点就成了机器学习了,没有深入研究)∙基于视觉网页块分析技术的正文抽取(CV这种高端大气上档次的东西,岂是我等这么容易就能研究明白的。
虽然实现上复杂,但就提取效果而言,这种方法提取的精度还是不错的)前2中方法还是比较容易实现的,主要是处理简单,先前我把标签密度的提取算法实现了,但实际用起来错误率还是蛮高的;后2种方法在实现上就略复杂了,从算法效率上讲应该也高不了哪去。
我们需要的是一种简单易实现的,既能保证处理速度,提取的准确率也不错的算法。
于是结合前两种算法,研究网页html页面结构,有了一种比较好的处理思路,权且叫做基于文本密度的正文提取算法吧。
后来从网上找了一下类似的算法,发现也有使用类似的处理方法来处理正文提取的,不过还是有些不同。
接下来跟大家分享一下这个算法的一些处理思想。
网页分析我任意取了百度,搜狐,网易的一篇新闻类网页,拿来作分析。
先看一篇百度的文章任正非为什么主动与我合影,/article/2011首先请求这个页面,然后过滤到所有的html标签,只保留文本信息,我们可以看到正文信息集中在一下位置:使用Excel分析行数与每行的字符的关系可以发现:很明显,正文内容集中在65-100行之间的位置上,而这个区间的字符数也是比较密集的。
再来一篇网易的文章张小龙神话已破灭马化腾该接管微信了,/13/1230/10/9HB88VE600094NRG.html还是先看下过滤html标签后的正文部分:再来一个Excel的分析结果:正文部分集中在279-282行之间,从图上看,也正是这么几行的文本密度特别高。
最后分析一篇搜狐的新闻李克强天津调研考察的几个瞬间,/20131229/n392604462.shtml还是先看下过后标签后的正文:再看下Excel的分析结果:而搜狐的这篇文章正文部分主要集中在200-255行之间。
其余的文本全部是杂乱的标签文本。
抱歉,漏了很重要的一点说明:为什么分析的时候要把html标签过滤掉呢?过滤html标签是为了降低干扰,因为我们关注的是正文内容,如果带着这样的标签<span style="color: #0000ff;">var</span> chart = <span style="color: #0000ff;">new</span><span style="color: #000000;">去分析,可想而知,对我们的正文分析会有多大的干扰了,也正因如此需要将html标签掉,只对文本做分析,降低干扰。
基于网页分析构思出的正文提取算法回顾以上的网页分析,如果按照文本密度来找提取正文,那么就是写这么一个算法,能够从过滤html标签后的文本中找到正文文本的起止行号,行号之间的文本就是网页正文部分。
还是从上面三个网页的分析结果看,他们都有这么一个特性:正文部分的文本密度要高出非正文部分很多。
我们按照这个特性就可以很容易将算法实现,那就是基于阈(读音:yu)值去分析正文所在的位置。
那么接下来就需要解决一些问题:∙如何确定阈值?∙如何分析,一行行的分析?还是?阈值的确定可以通过统计分析得出一个比较好的值,我在实际处理过程中,发现这个值取180是比较合适的,也就是分析文本的时候,如果所分析的文本超过了180,那么就可以认为到达了正文部分。
再有就是如何分析的问题,这个其实比较容易确定,一行行的分析效果肯定不好,如果在按行分析的过程中往下在分析几行作为一次分析效果比较好。
也就是一次性分析上5行左右,将字符累加起来,看看有没有达到设定的阈值,如果达到了,那么认为已经进入正文部分了。
嗯,主要的处理逻辑就是这样,怎么样,不复杂吧。
我把实现的核心算法也贴出来吧:int preTextLen = 0; // 记录上一次统计的字符数量(lines就是去除html标签后的文本,_limitCount是阈值,_depth是我们要分析的深度,sb用于记录正文)int startPos = -1; // 记录文章正文的起始位置for(int i = 0; i < lines.Length - _depth; i++){ int len = 0; for (int j = 0; j < _depth; j++) { len += lines[i + j].Length; } if (startPos == -1) // 还没有找到文章起始位置,需要判断起始位置 { if(preTextLen > _limitCount && len > 0) // 如果上次查找的文本数量超过了限定字数,且当前行数字符数不为0,则认为是开始位置 { // 查找文章起始位置, 如果向上查找,发现2行连续的空行则认为是头部int emptyCount = 0; for (int j = i - 1; j > 0; j--) { if (String.IsNullOrEmpty(lines[j])){ emptyCount++; } else{ emptyCount = 0; } if(emptyCount ==_headEmptyLines) { startPos = j +_headEmptyLines;break; } } // 如果没有定位到文章头,则以当前查找位置作为文章头if (startPos == -1) { startPos = i; } // 填充发现的文章起始部分for(int j = startPos; j <= i; j++){ sb.Append(lines[j]); } } } else {if (len <= _endLimitCharCount && preTextLen < _endLimitCharCount) // 当前长度为0,且上一个长度也为0,则认为已经结束{ if(!_appendMode) { break; } startPos = -1; } sb.Append(lines[i]); } preTextLen = len;}核心的提取算法不足60行,经过验证提取的效果还是非常不错的,至少做到了正文提取正确率90%上,效率上做到了平均提取时间30ms左右。
还需解决的一些问题html标签剔除:这个简单,直接使用正则表达式替换(Regex.Replace(html, "(?is)<.*?>", "")),将所有的html标签剔除即可html压缩型网页的处理:压缩后的html代码一般只有一行,对这类的html处理也比较简单(不需要复杂的代码格式化),直接在标签末尾强制添加换行符即可。
正文标题:大多数规范的网址会用h1标签作文正文标题,处理时如果有h1那么从h1标签中提取标题,没有的话,直接从title标签中那吧。
文章发布时间:并不是所有的文章都有发布时间(不过貌似大多数都有哈),直接使用正则从去除标签后的正文中提取时间吧。
保留带标签的正文:我们的算法是和标签无关的,因为算法处理时首先要过滤html标签,去除干扰,那么如果想要带标签的正文怎么办(比如要保留正文中的图片)?这时只能保留2个数组了,一个数组存放过滤标签的文本,便于分析,另一个数组则保留html标签,便于提取原始信息。
Html2Article网页正文提取算法Html2Article就是我基于以上思想实现的网页正文提取算法。
有以下特点:∙标签无关,提取正文不依赖标签。
∙支持从压缩的html文档中提取正文内容。
∙支持带标签输出原始正文。
核心算法简洁高效,平均提取时间在30ms左右。
算法已开源(也算是为开源做点贡献了吧):/Html2Article/https:///stanzhai/Html2Article/p/html2article使用方法请参考文档介绍说明。
算法是用C#实现的,玩.NET的同学有福了,可以直接使用nuget将html2article添加到你的项目中哦。
另外发现直接从百度搜索“html2article”也能找到很快的找打它,算法实现已经将近半年了,一直比较懒,也没写过文章跟大家分享一下。
本文版权归翟士丹(Stan Zhai)和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
酷毙雷人1鲜花鸡蛋漂亮刚表态过的朋友(1 人)wised收藏分享邀请上一篇:Massimo Banzi: Arduino如何开启开源想象力下一篇:每个Linux用户都应该了解的命令行省时技巧。