业界动态
两万字详细爬虫知识储备,数据采集与清洗基础习题(一)头歌参考答案
2024-10-31 21:29

数据采集习题参考答案,会持续更新,点个关注防丢失。为了方便寻找,按照头歌的门类从新整理了实训的分类,朋友们记得看标题哦,按标题寻找! 该篇为爬虫知识储备

两万字详细爬虫知识储备,数据采集与清洗基础习题(一)头歌参考答案

文章目录

实训一:HTML基础

第一关:初识HTML:简单的Hello World网页制作

第一关答案 

第二关:HTML结构:自我简介网页 

第二关答案 

实训二:HTML文本

第一关:HTML链接:带超链接的网页

第二关:HTML标题与段落:网络文章网页

第三关:HTML表格:日常消费账单表格展示网页

 第三关答案

实训三:HTML——基本标签

第一关创建第一个 HTML 标签

第二关:创建 <h1>-<h6>

第三关创建 p 标签

第三关答案 

第四关创建 a 标签

第四关答案 

第五关创建 img 标签

第五关答案 

第六关创建 div 标签

第六关答案 

第七关添加注释

第七关答案 

实训四:HTTP基础

第一关HTTP 标准

第二关开发者工具的基本使用

第二关答案

实训五:Python——JSON基础 

第一关JSON篇:JSON基础知识

第二关JSON篇:使用json库

实训六:Python——XPath基础 

第一关:XPath 路径表达式

第一关答案

第二关:XPath 轴定位

第二关答案

第三关:XPath 解析

第三关答案



(,超文本标记语言)是一种用于创建页面和应用的标准化标记语言。在(,级联样式表单)和的帮助下,已经成功构建了一整套面向的开发与应用平台。

自年面世,陆续推出了得到广泛应用的和标准,年标准的面世使其在多媒体和移动性方面得到了全面提升,使迎来了新的爆发式发展。

本习题面向零基础、入门级的技术学员,将介绍的基本概念和结构,体验一个简单的网页制作过程,以及一个相对完整的页面的制作过程。

本关的任务是编写一个简单的页面,这个网页包含一个标题和一个段落。显示效果如下

预览大图

是一种标准化的标记语⾔,由一套标记标签组成。前端开发人员的一项主要工作就是利用标签来编写⽹页,将文本、超链接、图片、语音、视频等各种内容整合起来,实现绚丽多姿的网页。

下面是大家需要记住的关于的一些基本描述

  • 标记标签,通常简称标签

  • 文档,通常简称页面、网页等

  • 能够较好的兼容之前版本,但也废弃了一些旧的特性。

  • ,等都是标签

  • ,等都是元素

  • 、都是元素的属性。

第一关答案 

本关任务是编写一个自我简介网页,你将通过本任务理解一个网页的完整结构,并了解如何让搜索引擎更好的找到你的网页。

显示效果如下图所示

预览大图

根元素:HTML 元素

然后,元素告知浏览器其本身是一个文档。

除去第一行外,其余的页面内容都应该包含在元素中,所以它也被称为根元素。

头元素:head 元素

与属性会给元素增添附加信息一样,元素能为整个网页增添更多信息。可以用在中的标签有,, , , , 以及 。在之后的学习中,你将逐渐的了解它们。

网页标题元素:title

本例网页主要内容是“自我简介”,所以也设置为“自我简介”。 元素的内容即网页标题,它是一个网页必需的元素之一。

的内容一般作为网页标签名,写法如下

第二关答案 

本关的任务是编写一个带超链接的页面,链接包含页面内导航链接和跳转其他网页的链接。显示效果如下

预览大图

超链接是网页互连的核心,网页之间通过超链接连接在一起。

我们使用 标签定义超链接。

一个简单的例子如下

点击元素内容后打开百度搜索网页。

其中,属性指定了超链接的目标,本例中即跳转到百度。

属性

href 属性

属性是超链接最重要的属性,它用于指定超链接目标的 URL。

典型的超链接格式如下

其中,目标URL有三种类型

  1. :指向同一页面内某一位置

  2. 相对 :指向同一网站的不同文件

  3. 绝对 :指向另一个网站。

提示:

  • ,统一资源定位器

  • 为什么叫作锚呢

的含义取于船上的锚,船把锚沉在水底后,如果船随水飘移了,只要一拉锚的锁链就会回到抛锚的位置。同样的,在中点就能回到指定位置。

本关任务是完成一个格式丰富的文章网页,你将通过本关学习标题、段落、文本格式化和引用等,与文本相关的标签。

预览大图

提供了六级标题用于创建网页信息的层级关系。 定义重要等级最高的标题,之后到层级依次递减。

本关任务是编写一个日常消费账单表格展示网页,你将通过本关学习如何使用编写出简洁清晰的表格。

预览大图

在表中,一个表格由行组成,每一行由单元格组成,单元格有标题单元格和数据单元格。

  1. 我们设定了元素的属性,改变了表格的宽度

  2. 我们使用元素设置了表格的标题

  3. 数据第一行元素中,使用元素指定了表头。本例中有三列信息,所以包含了三个元素

  4. 并且,我们设置了元素的属性的值为。

 第三关答案

本关任务:创建你的第一个标签,文本内容为。

预览大图

上面这行代码它表示一个HTML。

大多数 HTML 元素都是由和组成的,通常成对出现 。

开始标签:用尖括号包裹关键词,像这样。 结束标签:用包裹和开始标签一样的关键词,像这样。

可以发现: 结束标签就比开始标签多了一个斜杠。

本关任务:依次创建标签,文本内容为,查看它们的区别。

预览大图

第一关已经创建了标签,它是干什么的呢? 它一般用来创建标题

另外,也用来创建标题,它们有什么区别呢? 的字体比的字体要

当然,也用来创建标题,它们的字体依次减小。

注意:创建标题只有 ,没有 ,的。

本关任务:创建一个标签,文本内容为。

预览大图

元素通常用来表示一个段落。

你可以这样创建一个标签

第三关答案 

本关任务:创建一个标签, 跳转的地址是,文本内容是。

标签通常用来定义一个链接。属性的值就是链接的地址。

你可以这样创建一个标签,。当你点击这个链接时,它就会跳转到百度首页。

第四关答案 

本关任务:创建一个标签, 图片的地址是,提示文字是。

效果如下: 

预览大图

标签通常用来表示一个图片。属性的值就是图片的地址,属性的值是当图片没有展现出来时提示的文字 。

你可以这样创建一个标签, 。

这样图片就显示出来了。

第五关答案 

本关任务:创建一个标签, 文本内容是。

效果如下

预览大图

标签可以把文档分割为独立的、不同的部分。它没有实际的意义,仅仅表示创建了一个块级元素。

你可以这样创建一个标签,。

可以发现:它和 ,标签的创建是一样的,只不过它没有实际的意义。

第六关答案 

本关任务:注释掉 标签,同时在标签上方添加注释说明。

什么是注释? 为什么要添加注释呢

注释是解释性文本,在运行程序时,会被程序跳过,不做处理。

注释有两个作用

  • 可以给代码添加文字说明,便于代码阅读和日后维护
  • 对于暂时不用但又不能删除的代码,可以添加注释保存下来

如何添加注释呢

表示注释的开始, 表示注释的结束,这样就可以添加提示说明和注释元素了。

你可以这样注释标签和添加文字说明。

第七关答案 

HTTP 协议是 Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,减少网络传输。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪部分,以及哪部分内容优先显示等。python 爬虫开发,主要就是和 HTTP 协议打交道。 本实训主要介绍了网络爬虫的基础知识,包括 HTTP 的状态码、HTTP 消息头、HTTP 请求方式和 HTTP 工作原理等 HTTP 相关知识以及谷歌(Chrome)浏览器的开发者工具简介。

本关任务:掌握 HTTP 的相关知识,完成相关选择题。

HTTP 是一个客户端终端和服务器端请求和应答的标准。通过使用网页浏览器、网络爬虫或者其它的工具,客户端发起一个 HTTP 请求到服务器上指定端口(默认端口为80)。我们称这个客户端为用户代理程序(user agent)。应答的服务器上存储着一些资源,比如 HTML 文件和图像。我们称这个应答服务器为源服务器(origin server)。在用户代理和源服务器中间可能存在多个“中间层”,比如代理服务器、网关或者隧道(tunnel)。 尽管 TCP/IP 协议是互联网上最流行的应用,HTTP 协议中,并没有规定必须使用它或它支持的层。事实上,HTTP 可以在任何互联网协议上,或其他网络上实现。HTTP 假定其下层协议提供可靠的传输。因此,任何能够提供这种保证的协议都可以被其使用。因此也就是其在 TCP/IP 协议族使用 TCP 作为其传输层。 

答案:1.B   2.B  3.D

本关任务:了解开发者工具对于爬虫的用途。

开发者工具是一套内置于浏览器中的 Web 开发和调试工具,可用来对网站进行迭代、调试和分析。 对于爬虫实战来说,可以通过开发者工具快捷的定位元素,获取中途请求文件和查看网页结构等极其强大与便捷的用途。  

第二关答案

答案:1.C   2.B

在现实世界中,人与人之间的交流,需要建立在某种大家都能听懂的语言基础上。而在计算机领域中,各个系统之间的交流通信,也需要建立在某种公共的格式上。 本次实训将介绍:JSON 数据格式,学习使用 Python 对它们进行解析的方法,以此拓展我们的知识面,让我们能写出更加实用的 Python 程序。

本关任务:手动编写一个 JSON 格式的数据文件。

JSON 全称:Javascript Object Notation(Javascript 对象表示法),是一种轻量级的文本数据交换格式。与接下来要介绍的 XML 相比,拥有更小、更快、更易解析的特点。 

本关任务:编写一个能读取并修改 JSON 数据的程序。

库是 Python 内置的一个用于操作 JSON 数据的库,提供了几个函数用于解析生成(或者说反序列化序列化)JSON 格式的数据。 

详情见此篇博文

Python--JSON基础_宇阷的博客-CSDN博客

为了完成本关任务,你需要了解 XPath 路径表达式的基本语法,理解节点的基本类型,完成节点的获取、属性的匹配获取、多属性的匹配获取、文本的获取、按序选择等。

节点的基本类型

XPath 是一门在 XML 文档中查找信息的语言,虽然是被设计用来搜寻 XML 文档的,但是它也能应用于 HTML 文档,并且大部分浏览器也支持通过 XPath 来查询节点。在 Python 爬虫开发中,经常使用 XPath 查找提取网页中的信息,因此 XPath 非常重要。

在 XPath 中, XML 文档是被作为节点树来对待的,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。树的根被称为文档节点或者根节点。

根节点(Root Node

       根节点是一棵树的最顶层,根节点是唯一的。树上其它所有元素节点都是它的子节点或后代节点。对根节点的处理机制与其它节点相同。对树的匹配总是先从根节点开始。文档中的即为根节点。

元素节点(Element Nodes

  元素节点相对应的是文档中每个元素,一个元素节点的子节点可以为元素节点、注释节点、处理指令节点和文本节点。元素节点可以定义一个唯一的标识(id)。元素节点可以有拓展名,由两部分组成:命名空间 URL 和本地命名。文档中的即为元素节点。

文本节点(Text Nodes

  文本节点包含一组字符数据,任何一个文本节点都没有相邻的兄弟文本节点,而且文本节点没有扩展名。文档中的即为文本节点。

属性节点(Attribute Nodes

  每个元素节点有一个相关联的属性节点集合,元素是每个属性节点的父节点,但属性节点却不是其父元素的子节点。这就是说,通过查找元素的子节点可以匹配出元素的属性节点,但反过来不成立,只是单向的。再有,元素的属性节点没有共享性,也就是说不同的元素节点不共有同一个属性节点。文档中的即为属性节点。

命名空间节点(Namespace Nodes

  每个元素节点都有一个相关联的命名空间节点集。在 XML 文档中,命名空间是通过保留属性声明的。因此,在 XPath 中,该类节点与属性节点极为相似,它们与父元素之间的关系是单向的,并且不具有共享性。

处理指令节点(Processing Instruction Nodes

  处理指令节点对应于 XML 文档中的每一条处理指令。它也有扩展名,扩展名的本地命名指向处理对象,而命名空间部分为空。

注释节点(Comment Nodes

  注释节点对应于文档中的注释。

Xpath路径表达式的基本语法

XPath 使用路径表达式来选取 XML 文档中的节点或节点集。节点是沿着路径(path)或者步(steps)来选取的。接下来介绍如何选取节点,首先了解一下常用的路径表达式,来进行节点的选取,如下表所示

表达式描述nodename选取此节点的所有子节点/从根节点选取//选择任意位置的某个节点.选取当前节点..选取当前节点的父节点@选取属性

根据路径表达式的规则,我们对上文的的 XML 文档进行节点选取,如下表所示。

XPath路径表达式含义bookstore选取 bookstore 元素的所有子节点/bookstore选取根元素 bookstore/bookstore/book/text()选取属于 bookstore 子元素的 book 元素下的所有文本内容//book选取所有 book 子元素,而不管它们在文档中位置//@eng选取名为 eng 的所有属性

谓语的用法如下表所示

XPath路径表达式含义/bookstore/book[1]选取属于 bookstore 子元素的第一个 book 元素/bookstore/book[last()]选取属于 bookstore 子元素的最后一个 book 元素/bookstore/book[last()-1]选取属于 bookstore 子元素的倒数第二个 book 元素/bookstore/book[position()<3]选取最前面的两个属于 bookstore 元素的子元素的 book 元素//title[@lang]选取所有拥有名为 lang 的属性的 title 元素选取所有 title 元素,且这些元素拥有值为 eng 的 lang 属性选取所有 title 元素,且这些元素拥有值为 eng 的 lang 属性和值为good的class属性/bookstore/book[price>35.00]选取 bookstore 元素的所有 book 元素,且其中的 price 元素的值须大于 35.00/bookstore/book[price>35.00]/title选取 bookstore 元素中的 book 元素的所有 title 元素,且其中的 price 元素的值须大于 35.00

XPath 在进行节点选取的时候可以使用通配符匹配未知的元素,同时使用操作符一次选取多条路径,使用示例如下表所示

XPath路径表达式含义/bookstore/*选取 bookstore 元素的所有子元素//*选取文档中的所有元素//title[]选取所有带有属性的 title 元素//book/title 丨 //book/price选取 book 元素的所有 title 和 price 元素//title 丨 //price选取文档中的所有 title 和 price 元素/bookstore/book/title 丨 //price选取属于 bookstore 元素的 book 元素的所有 title 元素,以及文档中所有的 price 元素

第一关答案

为了完成本关任务,你需要了解:XPath 中如何使用轴定位。

在爬虫里面经常要用到定位,XPath 定位有着举足轻重的地位,因为它功能很强大。结合它里面的文本定位、模糊定位、逻辑定位等,基本能搞定所有的元素定位问题。

轴定义了所选节点与当前节点之间的树关系。在 Python 爬虫开发中,提取网页中的信息时,会遇到这种情况:首先提取到一个节点的信息,然后想在在这个节点的基础上提取它的子节点或者父节点,这时候就会用到轴的概念。轴的存在会使提取变得更加灵活和准确。

在上一关,我们了解了位置路径表达式中的相对位置路径、绝对位置路径和步的概念。位置路径可以是绝对的,也可以是相对的。绝对路径起始于正斜杠,而相对路径不会这样。在两种情况中,位置路径均包括一个或多个步,每个步均被斜杠分割: (绝对位置路径), (相对位置路径)。

步(step)包括:轴(axis)、节点测试( node-test)、零个或者更多谓语( predicate),用来更深入地提炼所选的节点集。XPath 中的轴名及含义如下表所示

轴名含义ancestor选取当前节点的所有先辈(父或祖父等)ancestor-or-self选取当前节点的所有先辈(父或祖父等)以及当前节点本身attribute选取当前节点的所有属性child选取当前节点的所有子元素descendant选取当前节点的所有后代元素(子或孙等)descendant-or-self选取当前节点的所有后代元素(子或孙等)以及当前节点本身following选取文档中当前节点的结束标签之后的所有节点namespace选取当前节点的所有命名空间节点parent选取当前节点的父节点preceding选取文档中当前节点的开始标签之前的所有节点preceding-sibling选取当前节点之前的所有同级节点self选取当前节点

轴的使用

轴需要通过步的语法,来实现节点的选取。步的语法为:,大家可能觉比较抽象。下面通过案例演示来帮助理解,XML 文档示例如下所示

第二关答案

本关任务:编写解析 HTML 文件的 Python 程序。

为了完成本关任务,你需要掌握:Python 环境下使用 XPath 对 HTML 文件进行解析。

lxml的安装

lxml 是 一个 HTML/XML 的解析器,主要的功能是解析和提取 HTML/XML 数据。lxml 和正则一样,也是用 C 实现的,是一款高性能的 Python HTML/XML 解析器,我们可以利用之前学习的 XPath 语法,来快速地定位特定元素以及节点信息。

如果本地 Python 环境没有安装 lxml,可以在窗口输入命令,安装 lxml 模块,如下图所示。

lxml的使用

使用 lxml,需要先导入相关包,语法如下

现在有如下 HTML 代码,需要获取第一个 book 节点下的 title 节点中的 class 的属性值:

使用 xpath 表达式解析网页之前,需要获取,这里有两种方法

  • 如果上述代码为本地文件,并且文件名为,获取的代码如下所示
  • 如果上述代码为字符串类型变量,并且变量名为,获取的代码如下所示

获取后,就可以使用 XPath 表达式解析网页了,代码如下所示

完成上述指定任务有多种实现方式,以下演示了四种不同的 XPath 表达式,都能够获取第一个 book 节点下的 title 节点中的 class 的属性值。

以上代码都可以获取图中红框部分的内容。

,

第三关答案

在学习中成功、在学习中进步!我们一起学习不放弃~

记得三连哦~ 你们的支持是我最大的动力!欢迎大家阅读往期文章哈~

小编联系方式如下,欢迎各位巨佬沟通交流,代码什么的加小编私聊哦~

    以上就是本篇文章【两万字详细爬虫知识储备,数据采集与清洗基础习题(一)头歌参考答案】的全部内容了,欢迎阅览 ! 文章地址:http://dfvalve.xrbh.cn/news/3278.html 
     资讯      企业新闻      行情      企业黄页      同类资讯      首页      网站地图      返回首页 迅博思语资讯移动站 http://keant.xrbh.cn/ , 查看更多   
最新新闻
“撒旦”人血鞋?碰瓷新疆棉花的耐克,又开始喊冤了?
继主动碰瓷新疆棉花把自己搞得股价大跌之后耐克秉承着“no zuo no die”的精神又开始暗搓搓搞“阴间操作”限量发售含人血的“撒
tiktok怎么搭建外网 详细教程及步骤
TikTok怎么搭建外网(详细教程及步骤)TikTok是一款非常流行的短视频社交应用程序,它在全球范围内拥有数亿用户。在使用TikTok的
《以案释法》步数越多,收益越高?别被“走路也能赚钱”的理财广告忽悠了
  走路也能赚到钱的理财  “丑的人还在睡觉,美的人已经跑出一杯星巴克了。”2016年的一天,一个女孩晒出的朋友圈截图引起了
如何用生意参谋算出同行店铺真实销售额
怎么经过生意顾问算出同行店肆实在销售额?大多数在淘宝天猫工作过的人都知道,他们的背景显现了同行商铺的买卖数据,这被称为买
一款最近比较火的网站统计分析系统,易分析具有什么样的功能呢?
一、产品简介北京普艾斯科技有限公司成立于2009年,服务客户1000+,包括电商、金融、保险、政务服务等行业。私有化部署,全渠道
向佐快乐大本营2024年精彩回顾:四年时光共欢笑
张大大谢娜力捧下的综艺新星张大大一位在娱乐圈中颇具人气的主持人他的成名之路离不开谢娜的提携回顾张大大的成名之路可以说谢娜
PingTools app
《PingTools app》是一款非常好用的实用工具软件,软件内拥有丰富的功能,包含了包括浏览器扫描等。使用非常简单,直接下载安装
抖音能看到谁搜索过自己吗?
尊敬的用户,您好。针对抖音平台是否能够查看谁搜索过自己的问题,我们需要做一些详细说明。首先,根据我们了解到的情况,在抖音
什么是人工智能“语料库”?为什么每个人都在谈论它?
编者按:比尔盖茨(Bill Gates)、Reddit 首席执行官和其他科技领袖越来越多地谈论“语料库”,现在是时候了解它是“何方神圣”
LED行业词语中英对应
1、led 灯具构成英文led 球泡灯:led bulbLed 贴片灯珠:SMD LEDLed驱动电源:led driver隔离电源:isolated driver非隔离电源:
本企业新闻

点击拨打: