html布局代码-HTML 基础知识和 R 语言分析 | R语言千寻

在数据科学和网络技术的各种技能中,大家对爬虫的兴趣不如其他技能。 无论学术研究还是商业分析,数据收集始终是首先要解决的问题。 一般来说,一般数据可以从国家和地方统计局、统计年鉴、单位报告中找到,但对于特定领域的数据分析和挖掘工作,通过简单的搜索可能无法获得所需的数据。 这时候就需要学习网络数据采集技术,即网络爬虫。 许多读者早已习惯使用R作为数据分析工具。 如果R语言也能像Python一样拥有强大的爬虫生态系统那就完美了。

虽然R具有开源、扩展包丰富、易学易用的特点,但R的爬虫生态不如Python是不争的事实。 Python中的scrapy框架足以让人高兴,但R却没有流行的爬虫框架。 尽管如此,如果结合R现有的爬虫条件,多加探索,还是可以解决目前大部分爬虫需求的。

下面介绍爬虫技术的第一个基础知识:HTML。 作为三大核心技术(HTML、CSS和JavaScript)之一,HTML的重要性不言而喻。 如果说后端开发过程是盖房子的过程,那么HTML就是房子的骨架结构,从地基到天花板都需要结构清晰; 而房子建成后的家居装修则是CSS,比如地板上铺瓷砖、墙上贴壁纸等。进一步地,给房子添加更多的动态和视觉效果,比如灯光变化、音乐渲染等功能,主要是 JavaScript 所做的事情。

图1 前端技术三驾马车

那么 HTML 到底是什么? 和R语言爬虫有什么关系呢? HTML的全称是Hyper Text Markup Language(超文本标记语言),是一种用来在网页上显示内容的语言。 HTML 不是一种编程语言,而是一种描述内容并定义其表示形式的标记语言。 HTML只是规定了网页的结构,所以网页的标题和内容都显示在那里,显示什么内容,如何显示,都不属于HTML的管辖范围。

HTML 语法规则

在爬取数据之前,需要了解HTML的语法规则,这样才能够“对症下药”。 在任意浏览器中,随意打开一个网页,点击键盘右键查看源文件或检查元素,就会出现当前网页的HTML代码。 我们以电影《致青春》为例,展示一下HTML的基本原理。

图2 《青春》海报

查看豆瓣视频“青春”页面的HTML源代码,对比页面元素与HTML源代码的对应关系。 图3为芳华在豆瓣视频上介绍的部分HTML代码。

图3.豆瓣视频介绍《青春》的HTML源代码

图3是单击鼠标右键查看元素后的界面。 可以在HTML中看到网页上显示的“冯小刚”对应位置,在HTML代码中逐层嵌套(这里的结果使用谷歌chrome浏览器展示)。

那么专门抓取编剧信息的爬虫要做的就是找到“冯小刚”的嵌套位置,把他邀请下来。 我们来简单学习一下HTML的句子结构。

与编程语言的句型相比,HTML的句型可谓简单、易懂、易学。 简单地说,从内容上来看html布局代码,HTML是标签、元素和属性的组合; 从结构上来看,HTML是一种树形组织结构。 了解了这些之后,再稍微关注一下HTML的注释方式、保留字符、文档定义,就可以掌握HTML知识的全貌了。 下面对内容和结构进行详细说明。

1.标签、元素和属性

HTML中的标签可以理解为一种标题。 实际句型中,标签一般由一对“< >”符号组成,起始标签、内容和终止标签组合成一个元素,如图4的代码所示。

图4HTML元素

开始标签和停止标签都用“< >”符号包裹,以与内容区分开。 不同的是,停止标签会有一个“/”符号来表示区别。大多数标签都是成对出现的,但也有例外,比如

tab 表示换行符,不需要

标签来指示中止。

常用的HTML标签如表1所示(更多标签请参考HTML指南)。

表1 常用HTML标签

标签最重要的特征之一是属性。 继续看图4所示的代码:标签可以将相关文本(这里是“冯小刚”)与指向另一个地址的超链接关联起来。 href="/celebrity/1274255/" 属性指定一个链接,浏览器会手动将此类元素转换为可点击的带逗号的样式,而 rel="v:dir​​ectedBy" 属性则用于指定当前的关系将文档添加到链接文档。 总之,属性是允许标签描述如何处理其内容的选项。 具体属性的作用根据对应的标签来确定。

属性始终位于开始标记内,标记名称的左侧。 标签具有多个属性也是一种常见的操作,多个属性之间用空格分隔(见图5)。

图5 标签属性

2. 树结构

正如文档结构图(图6)一样,HTML最大的特点就是以树形结构的形式呈现。

图6 文档结构图

图 7 显示了一个简单的 HTML 结构示例。

图7 HTML树结构

图7中,第一个元素是一个元素html布局代码,在该元素的start和stop标签​​内,有几个分别为start和stop的标签: 和 。 和 标签都作为同级标签包含在元素内,并且标签包含在标签内。 这样就描述了一个典型的树结构。

在一个结构良好、合法的 HTML 文件中,所有元素必须严格相互嵌套,即一对开始标签和停止标签必须完全包含在另一对开始标签和停止标签内,就像在物理公式中一样。括号的层数是相同的。

不仅是上面的HTML基础知识,其他一些详细的知识包括注释、保留字符和特殊字符、文档定义类型等也值得注意,这里就不一一列举了。

R语言中HTML的解析

熟悉了基本的HTML结构后,我们来看看如何用R语言解析HTML。 对于HTML来说,R语言很难直接分析,需要进行改造。 这个过程就是HTML解析。 具体来说,为了将 HTML 文件转换为结构化数据,需要使用能够理解 HTML 结构含义的程序,并重建 HTML 文件中包含的层次结构,从而将 HTML 内容转换为可以用R语言分析的形式。 在R语言中,通常使用XML包中的htmlParse()函数来解析HTML文件。 XML有基于C语言的libxml2库的socket,功能非常强大。 一个简单的R代码示例如下所示:

通过上面的代码,一个完整的HTML文档被解析成R。解析之后,HTML文件被转换为R语言的对象。

HTML作为所有网络爬虫的入门知识,对于之前爬虫的理解和操作有着根本性的意义。 数据科学虽然不是后端开发,但是掌握基础的Web知识是非常有必要的。

熊小编1分钟前

如果您对【R语言千寻】的内容感兴趣,请在微信公众号回复“R”即可查看往期精彩文章。

识别下方二维码即可成为狗熊俱乐部会员!

温馨的提示:

个人会员不提供数据、代码、

仅视频!

个人会员网址: