2.4 通用的网页信息结构化信息提取的方法

我们在抓网页的时候,希望获得的是网页中的有效信息。事实上,直接抓取下来的内容是网页全部的HTML代码,代码中有很多标签、格式控制等等无效的信息。这一节我们就来讲解对于任意一个网页,我们怎么提取出网页中的有效信息,并且结构化存储。

先亮代码:https://github.com/1049451037/universal_webpage_extraction

这个工程使用起来很简单,把要提取的链接放到pool.txt里,然后运行main.py,就可以把pool.txt里的页面都抓取下来并且结构化存储。结果存在output文件夹里。

每个网页都保存了链接、标题、文本、图片链接、链接到的网页。效果如下:

下面来讲解一下原理,实际上很简单,使用的是beautifulsoup包。

beautifulsoup是Python的一个拓展库,可以非常方便的实现HTML网页的分析。下面是它的官方文档网址,里面讲的非常清楚:

https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/

实现起来特别容易,核心代码只有几行,就可以很容易的提取出想要的东西:

想要更多地了解和使用beautifulsoup,建议学习官方文档~

时间: 2024-10-06 17:30:30

2.4 通用的网页信息结构化信息提取的方法的相关文章

基于word分词提供的文本相似度算法来实现通用的网页相似度检测

实现代码:基于word分词提供的文本相似度算法来实现通用的网页相似度检测 运行结果: 检查的博文数:128 1.检查博文:192本软件著作用词分析(五)用词最复杂99级,相似度分值:Simple=0.968589 Cosine=0.955598 EditDistance=0.916884 EuclideanDistance=0.00825 ManhattanDistance=0.001209 Jaccard=0.859838 JaroDistance=0.824469 JaroWinklerDi

一种通用的网页相似度检测算法

如果我们需要在海量的结构未知的网页库中找到和指定的网页相似度比较高的一些网页,我们该怎么办呢?本文提出的"一种通用的网页相似度检测算法"就是专门解决这个问题. 算法如下: 1.提取网页文本.这个提取步骤不要求精确,也没办法精确,因为你面对的是未知结构的网页,所以只需要提取去掉标签之后的文本即可. 2.对提取的文本进行分词.我们使用开源的中文分词组件word分词. 3.为每一个网页建立一个词向量,向量的维度就是两个网页的不重复词的并集,每一个维度的权重就是词频TF,我们这里忽略IDF也不

Java实现的基于模板的网页结构化信息精准抽取组件:HtmlExtractor

HtmlExtractor是一个Java实现的基于模板的网页结构化信息精准抽取组件,本身并不包含爬虫功能,但可被爬虫或其他程序调用以便更精准地对网页结构化信息进行抽取. HtmlExtractor是为大规模分布式环境设计的,采用主从架构,主节点负责维护抽取规则,从节点向主节点请求抽取规则,当抽取规则发生变化,主节点主动通知从节点,从而能实现抽取规则变化之后的实时动态生效. 如何使用? HtmlExtractor由2个子项目构成,html-extractor和html-extractor-web.

Alien Skin Exposure v6.x 最新通用完整版汉化补丁

    完整汉化版说明: 我于2014-06-19上传的"Alien Skin Exposure 6.x 通用汉化补丁",有些网友反映预设不能显示中文,调查了一下:预设能显示中文的,操作系统基本上是完整版,精简版.克隆版的系统由于被精简了某些文件,所有不能正常显示.为了这些朋友能正常使用,我把汉化包重新编辑了一下,在几个不同操作系统的电脑上做了实验,全部通过.这次保你满意,祝你成功! Alien Skin Exposure v6.0 是一款专业的PS胶片调色滤镜软件,使用Alien S

如何使用HtmlExtractor实现基于模板的网页结构化信息精准抽取?

首先,我们新建一个maven工程,在pom.xml中加入HtmlExtractor依赖,如下所示: <dependency>     <groupId>org.apdplat</groupId>     <artifactId>html-extractor</artifactId>     <version>1.1</version> </dependency> 接着,我们加入日志配置文件,在src/main/

如何让aspnet服务加载静态资源html(我的动态网页静态化) 转

我们知道,IIS自身是不能处理像ASPX扩展名这样的页面,只能直接请求像HTML这样的静态文件. 当客户端请求一个服务器资源时,这个HTTP请求会被inetinfo.exe进程截获(www服务),然后Check请求资源的类型,并依据资源映射信息(存储在IIS元库中,一种IIS专用的配置数据库)将请求的资源分配给特定的处理程序模块.1,如果是静态资源的请求,则分配由IIS处理(IIS在本地Web Server上访问请求的文件),将内容输出到控制台,发出请求的浏览器就能接收到它了.-----End2

如何通过 Vue+Webpack 来做通用的前端组件化架构设计

如何通过 Vue+Webpack 来做通用的前端组件化架构设计 转载 作者:伯乐在线专栏作者 - 新空气 链接:http://web.jobbole.com/86977/ 点击 → 了解如何加入专栏作者 目前如果要说比较流行的前端架构哪家强,屈指可数:reactjs.angularjs.emberjs.avalonjs.vuejs. 我个人接触使用过:avalonjs.angularjs.vuejs.因为工作以及前端团队能力的问题,所以在不同的公司,在开发工作中选用了不同的前端架构. 以下仅仅是

网页静态化技术Freemarker的详细介绍

网页静态化技术Freemarker 一.Freemarker的基本介绍 1.1为什么要使用网页静态化技术 网页静态化解决方案在实际开发中运用比较多,例如新闻网站,门户网站中的新闻频道或者是文章类的频道. 对于电商网站的商品详细页来说,至少几百万个商品,每个商品又有大量的信息,这样的情况同样也适用于使用网页静态化来解决. 网页静态化技术和缓存技术的共同点都是为了减轻数据库的访问压力,但是具体的应用场景不同,缓存比较适合小规模的数据,而网页静态化比较适合大规模且相对变化不太频繁的数据.另外网页静态化

网页静态化—redis | freemarker

1.   学习计划 1.商品详情页面展示,动态展示 jsp + redis 2.使用freemarker实现网页静态化 3.ActiveMq同步生成静态网页 两个方案对比,方案一依赖web容器,redis的引入确实是减轻了数据库的压力,却也有明显的不足,撇开缓存的上限不说,方案一中web容器还是会去编辑和解析jsp页面,从缓存中拿数据,生成html返回给客户端:而方案二完全脱离web容器,不仅减轻了数据库的压力,也减轻了web容器的压力,性能更加优越. 下面分别演示这两种解决方案.这里对搭建工程