爬虫实战12—自动摘要及正文抽取
来源:互联网 发布:mac 彻底删除office 编辑:程序博客网 时间:2024/05/22 08:24
文章说明:本文是在学习一个网络爬虫课程时所做笔记,文章如有不对的地方,欢迎指出,积极讨论。
一、文本长度分析
(一)去除JavaScript及CSS
利用lxml的clean类,能删除HTML里所包含的CSS及script
from lxml.htmlimport clean
cleaner =clean.Cleaner(style=True,scripts=True,comments=True,javascript=True,
page_structure=False,safe_attrs_only=False)
content =cleaner.clean_html(content.decode(‘utf-8’)).encode(‘utf-8’)
(二)去除所有的HTML TAG
利用下面的正则表达式,把HTML的TAG和属性也都去除掉,最后只剩下正文部分
reg = re.compile(“<[^>]*>”)
content =reg.sub(“”,content)
示例:
输出结果:微指数
(三)基于文本长度的分析方法
对于一些新闻类网页,正文分布往往比较集中,在正文集中的区域,每一行的文本数量都比较多。
二、Text-Tag Ratio
(一)文本与标签密度
对一些网页进行分析发现,正文的标签比较少,文本数量与标签数量的比值很大,而噪声部分,标签很多,正文很少,所以我们考虑利用文本与标签的比值来进一步区分,利用下面算法计算TEXT/TAG的比值
使用TEXT/TAG的比值后,有效去除了一些噪声
三、K-Means
(一)监督学习与无监督学习(参考内容)
监督学习(SupervoisedLearning):有标签,根据标签来预测结果并与实际结果对比,修正数据最终得到一个模型。
无监督学习(UnsupervisedLearning):没有标签,根据一些特性来自动分类。
(二)K-Means
1.随机选择k个中心点;
2.计算每个点与k个中心点的距离,把这个点划归到距离最小的点那个类别里;
欧拉距离:
3.重新计算每个类别的中心点;
4.重复步骤2~3,直到目标函数达到最优或者迭代次数达到上限;
5.结束条件,综合距离方差最小 ,可以转化为求两次方差之间的差值小于设定的阈值。
(三)算法的优点
1.快速、简单
2.大数据集有较高的效率并且是可伸缩性的
3.时间复杂度近似于线性,而且适合挖掘大规模数据集。K-Means聚类算法的时间复杂度是O(nkt),其中n代表数据集中对象的数量,t代表着算法迭代的次数,k代表着簇的数目
4.每个簇接近高斯分布的时候,效果比较好
(四)算法的缺点
1.簇的平均值可被定义的情况下,才能使用
2.必须给定k的数目,而且对k很敏感
3.对噪声和孤立点很敏感
(五)对数据进行平滑
考虑这种情况:一段游记,有大量几个字一句话的描述,有一部分长段的介绍,因此会出现下面的情况,如果我们按照平均值来计算的话,大多数正文都会被认为是噪声。
正文整体是成块出现的,因此可以对奇点、噪点进行平滑,平哈的办法就是对前后r行进行平均,这样能提高K-Means算法的精度
(六)利用K-Means聚类
(七)中心点均值
分布更平均的时候,标准差减小;分布不均匀的时候,标准差增加。正文簇的均值一定高于标准差的。
四、标签模板
(一)通用模板与配置
针对特定类型的网站,可以快速找出它们所使用的标签类型,我们把这些选择器以模板的方式来配置。
xpath支持or的选项,因此我们可以用
self::p orself::span
来合并多种标签标记的正文
(二)使用场景
Text/Tag:
1.大规模抓取,没有模板的网站
2.优势:不需要规则,使用广泛
3.劣势:精准度差
模板:
1.有针对性的抓取,对于核心网站可以考虑使用模板
2.优势:精准度高,质量好,速度快
3.劣势:只能对特定网站使用
五、PyGoose
(一)概述
Goose will tryto extract the following information:
1. Main text ofan article
2. Main image ofarticle
3. AnyYouTube/Vimeo movies embedded in article
4. MetaDescription
5. Meta tags
(二)setup
git clonehttps://github.com/grangier/python-goose.git
cd python-goosepip install –r requirements.txt
python setup.pyinstall
(三)使用
- 爬虫实战12—自动摘要及正文抽取
- python爬虫进阶(十二):自动摘要及正文抽取
- 文档摘要自动提取算法——抽取式
- python 简单的网络爬虫 + html 正文抽取
- Linux企业级项目实践之网络爬虫(14)——使用正则表达式抽取HTML正文和URL
- 网页正文的抽取
- 如何抽取HTML正文
- python爬虫——获取正文内容
- Apache POI正文抽取笔记
- pytho多线程+html正文抽取
- python爬虫实战——图片自动下载器
- 爬虫实战5—分布式数据库及应用
- 文本关键词提取算法及自动摘要
- python爬虫实战-自动IP地址查询
- 正文抽取所需正则全集
- 利用HtmlParse抽取网页正文内容
- 怎样抽取网页标记之间的正文
- 关于新闻博客类页面正文抽取
- Java笔记--04
- matlab将矩阵化成行最简形
- Sqoop 简介及安装部署
- 中国大学MOOC·Python网络爬虫与信息提取(一)
- C#笔记(5)textbox的hint属性
- 爬虫实战12—自动摘要及正文抽取
- JavaWeb Session 之表单的重复提交
- Mycat概述
- SVM之对偶问题
- Mathematical Field of Experiments (打表)
- 深度优先搜索—C—python
- exit函数
- SVM之核函数
- codility MinPerimeterRectangle