2024--2025-1爬虫复习题库 (1).zip
资源文件列表:

css Selector.docx 16.65KB
http基础.docx 20.45KB
json模块试题.docx 20.49KB
lxml-etree试题.docx 23.98KB
requests库.docx 17.83KB
scrapy.docx 17.3KB
selenium试题.docx 18.66KB
xpath试题.docx 19.65KB
多线程爬虫.docx 19.91KB
正则表达式.docx 19.54KB
资源介绍:
2024--2025-1爬虫复习题库 (1).zip
Python 爬虫课程中关于 lxml 模块的 etree 分析页面数据章节设计的试题及答案:
试题
一、选择题
1. 在 Python 爬虫中,使用 lxml 模块的 etree 分析页面数据时,首先需要实例化一个什
么对象?
A. HTML 对象
B. etree 对象
C. XML 对象
D. Parser 对象
2. 使用 etree 对象的 xpath 方法时,以下哪个符号用于表示从任意节点开始定位?
A. /
B. //
C. @
D. []
3. 在 xpath 表达式中,如何定位具有特定 class 属性的 div 元素?
A. //div[@class]
B. //div[class="特定值"]
C. //div/class="特定值"
D. //div[@class="特定值"]
4. 在使用 etree 解析 HTML 文档时,如果希望获取某个标签 tag 直系文本内容,应使
用哪种 xpath 表达式?
A. //text()
B. /text()
C. tag/text()
D. tag//text()
5. 以下哪个函数用于将本地的 HTML 文档源码数据加载到 etree 对象中?
A. etree.HTML()
B. etree.parse()
C. etree.tostring()
D. etree.XPath()
二、简答题
1. 请简要描述使用 lxml 模块的 etree 分析页面数据的主要步骤。
2. 在 xpath 表达式中,如何使用索引定位特定的元素?请给出一个例子。
3. 请解释 xpath 表达式中的“/”和“//”的区别。
答案
一、选择题
1. B. etree 对象
解析:在使用 lxml 模块的 etree 分析页面数据时,首先需要实例化一个 etree 对象。
2. B. //
解析:在 xpath 表达式中,//表示从任意节点开始定位。
3. D. //div[@class="特定值"]
解析:在 xpath 表达式中,要定位具有特定 class 属性的 div 元素,应使用//div[@class="
特定值"]。
4. C. tag/text()

解析:在使用 etree 解析 HTML 文档时,如果希望获取某个标签直系文本内容,应
使用 tag/text()的 xpath 表达式。
5. B. etree.parse()
解析:etree.parse()函数用于将本地的 HTML 文档源码数据加载到 etree 对象中。
二、简答题
1. 使用 lxml 模块的 etree 分析页面数据的主要步骤包括:
o 实例化一个 etree 对象,并将被解析的页面源码数据加载到该对象中。
o 调用 etree 对象中的 xpath 方法,结合 xpath 表达式定位标签和爬取内容文
本或属性。
2. 在 xpath 表达式中,可以使用索引定位特定的元素。例如,要定位 class 为"title"的 div
元素中的第一个 a 标签,可以使用以下 xpath 表达式://div[@class="title"]/a[1]。这
里的[1]表示索引为 1 的元素,即第一个 a 标签。
3. 在 xpath 表达式中,“/”表示一个层级,从根节点开始定位;而“//”表示多个层级,可
以从任意节点开始定位。例如,/html/head/title 表示从根节点 html 开始,依次定位
到 head 和 title 标签;而//title 则表示从任意节点开始定位 title 标签,不考虑其在文
档中的具体位置。
代码题填空题:
1、 已知 HTML 页面源代码如下所示。
<html>
<head>
<title>示例页面</title>
</head>
<body>
<div class="content">
<h1>欢迎来到我的网站</h1>
<p class="description">这是一个示例页面,用于展示如何使用 lxml 模
块。</p>
<ul>
<li><a href="http://example.com/page1">页面 1</a></li>
<li><a href="http://example.com/page2">页面 2</a></li>
<li><a href="http://example.com/page3">页面 3</a></li>
</ul>
</div>
</body>
</html>
选择正确答案将以下 python 代码填充完整,使其满足题目要求能提取 HTML 的内容。
from lxml import etree
# 假设 html_content 是上述 HTML 代码片段的字符串表示
html_content = '''