目录
回复内容:
首页 后端开发 php教程 怎么让爬虫智能的爬取网页的文章内容

怎么让爬虫智能的爬取网页的文章内容

Jun 06, 2016 pm 08:35 PM
php python 算法 网页爬虫

相關問題:如何提取網頁正文

最近写了一个爬虫 都过正则来匹配一个文章的内容这样有些麻烦,每个网站都要写正则。
1,怎么智能的实现网页文章内容的爬取?需要怎么做?
eg:
http://www.cnbeta.com/articles/385387.htm
http://www.ifanr.com/512005
2,抓取完以后怎么提取文章的标签?用于后于后面的相似文章推荐。

回复内容:

相關問題:如何提取網頁正文

最近写了一个爬虫 都过正则来匹配一个文章的内容这样有些麻烦,每个网站都要写正则。
1,怎么智能的实现网页文章内容的爬取?需要怎么做?
eg:
http://www.cnbeta.com/articles/385387.htm
http://www.ifanr.com/512005
2,抓取完以后怎么提取文章的标签?用于后于后面的相似文章推荐。

第一個問題和已有問題重複:如何识别並提取网页正文?。

第二個問題我寫過簡單的分詞算法,順便把出現頻率高的詞作爲關鍵詞提取了。即便是非常簡單的算法,對大多數網頁效果也還不錯。

不過分詞算法有很多現成的,你可以搜;
關鍵詞提取有很多現成的,你可以搜。。。

第二問貌似也與已有問題重複。

我之前用php写过一个采集插件。你这个叫网页正文提取。

算法大概如下:

1、把网页分解成很多DOM块。
2、分解的dom块。你要用一定的标准去丢弃,排除。比如有些dom快里面,都是大堆的链接这个一般是列表。可以丢弃。还有 算出文本密度(文本/html)的比值。比如(span,p,a,font)等标签所占的百分比。等等,经过多重过滤,最终会留下不多的几个dom块。再按照一定的规则过滤掉。正确率会比较高。

最重要的一个值也可以作为参考,我在一篇论文里面看到,用一段文字里面的句号多少来判定。
如果一大段文字里面,句号出现很多,那这个dom快很可能是内容快。

我之前写过一个java版的爬虫(Gworm),提出一点拙见,如果随便给你一个网址,智能的提取出网页的文章部分还是很困难的(也不是没方法吧,要用到统计概率的方法,也不能做到百分之百正确)。所以我之前的方案是使用css选择器提取内容,而不自己手写正则表达式,一个网站的css样式名一般都是很稳定的,这样一来一个网站的所有文章只需要一个提取规则,而且你第二个问题,获取文章标签,使用css选择器也可以轻松解决。介于题主使用python爬取,我不清楚python有什么库可以提供对DOM进行css选择的功能,但我相信一定是有的,对应我使用java版css选择器是Jsoup。

更新:刚google一下“python css selector”一大把结果。看下这篇文章吧https://pythonhosted.org/cssselect/。

python中有 pyquery
php有 phpquery
都很方便用jquery语法处理,

python中有scrapy框架,很不错,还有一个scrapinghub的云平台,可以省掉你的很多工作;

至于抓取标签,就涉及分类和聚类算法,这里面就有很多选择了

数据量不大的话,用 readability 的 api,省事。

https://www.readability.com/developers/api/parser

建议不要用正则来做html解析,学习一下lxml,然后在chrome浏览器的开发这模式就可以复制对应DOM节点的xpath直接在lxml,省了很多事,而且lxml解析html,xml性能杠杠的

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

PS一直显示正在载入是什么原因? PS一直显示正在载入是什么原因? Apr 06, 2025 pm 06:39 PM

PS“正在载入”问题是由资源访问或处理问题引起的:硬盘读取速度慢或有坏道:使用CrystalDiskInfo检查硬盘健康状况并更换有问题的硬盘。内存不足:升级内存以满足PS对高分辨率图片和复杂图层处理的需求。显卡驱动程序过时或损坏:更新驱动程序以优化PS和显卡之间的通信。文件路径过长或文件名有特殊字符:使用简短的路径和避免使用特殊字符。PS自身问题:重新安装或修复PS安装程序。

什么是跨站点伪造(CSRF),您如何在PHP中实施CSRF保护? 什么是跨站点伪造(CSRF),您如何在PHP中实施CSRF保护? Apr 07, 2025 am 12:02 AM

在PHP中可以通过使用不可预测的令牌来有效防范CSRF攻击。具体方法包括:1.生成并在表单中嵌入CSRF令牌;2.在处理请求时验证令牌的有效性。

PS启动时一直显示正在载入如何解决? PS启动时一直显示正在载入如何解决? Apr 06, 2025 pm 06:36 PM

PS启动时卡在“正在载入”可能是由于各种原因造成的:禁用损坏或冲突的插件。删除或重命名损坏的配置文件。关闭不必要的程序或升级内存,避免内存不足。升级到固态硬盘,加快硬盘读取速度。重装PS修复损坏的系统文件或安装包问题。查看错误日志分析启动过程中的错误信息。

您如何防止班级被扩展或方法在PHP中被覆盖? (最终关键字) 您如何防止班级被扩展或方法在PHP中被覆盖? (最终关键字) Apr 08, 2025 am 12:03 AM

在PHP中,final关键字用于防止类被继承和方法被重写。1)标记类为final时,该类不能被继承。2)标记方法为final时,该方法不能被子类重写。使用final关键字可以确保代码的稳定性和安全性。

PS打开文件时一直显示正在载入如何解决? PS打开文件时一直显示正在载入如何解决? Apr 06, 2025 pm 06:33 PM

PS打开文件时出现“正在载入”卡顿,原因可能包括:文件过大或损坏、内存不足、硬盘速度慢、显卡驱动问题、PS版本或插件冲突。解决方法依次为:检查文件大小和完整性、增加内存、升级硬盘、更新显卡驱动、卸载或禁用可疑插件、重装PS。通过逐步排查,并善用PS的性能设置,养成良好的文件管理习惯,可以有效解决该问题。

在PHP中解释严格的类型(STRICT_TYPES = 1);)。 在PHP中解释严格的类型(STRICT_TYPES = 1);)。 Apr 07, 2025 am 12:05 AM

PHP中的严格类型通过在文件顶部添加declare(strict_types=1);来启用。1)它强制对函数参数和返回值进行类型检查,防止隐式类型转换。2)使用严格类型可以提高代码的可靠性和可预测性,减少bug,提升可维护性和可读性。

PS羽化如何控制过渡的柔和度? PS羽化如何控制过渡的柔和度? Apr 06, 2025 pm 07:33 PM

羽化控制的关键在于理解其渐变本质。PS本身不提供直接控制渐变曲线的选项,但你可以通过多次羽化、配合蒙版、精细选区,灵活调整半径和渐变柔和度,实现自然过渡效果。

PS卡在载入界面怎么办? PS卡在载入界面怎么办? Apr 06, 2025 pm 06:54 PM

PS卡在载入界面可能是由软件自身(文件损坏或插件冲突)、系统环境(驱动过时或系统文件损坏)或硬件(硬盘损坏或内存条故障)问题造成的。首先检查计算机资源是否充足,关闭后台程序释放内存和CPU资源。修复PS安装或检查插件是否存在兼容性问题。更新或回退PS版本。检查显卡驱动并更新,运行系统文件检查。若排除上述问题,则可以尝试硬盘检测和内存测试。

See all articles