第8单元8.4网络爬虫应用(练习)-《程序设计基础-Python》(高教版)同步精品课堂
2026-01-13
|
2份
|
11页
|
51人阅读
|
0人下载
内容正文:
8.4网络爬虫应用
一、选择题
1. 网络爬虫的基本工作流程中,第一步是( )
A. 获取新的URL地址并放入队列
B. 获取初始的URL
C. 设置停止条件
D. 从URL队列中读取新URL
2. 下列不属于 requests 模块同类功能的库是( )
A. urllib B. lxml
C. urllib2 D. httplib2
3. 响应对象的 apparent_encoding 属性作用是( )
A. 设置响应内容的编码
B. 返回从内容中分析出的响应编码方式
C. 返回网页的二进制内容
D. 返回字典格式的响应头
4. 使用 try-except 处理爬虫异常时,异常会被哪个代码块捕获( )
A. try块 B. except块
C. raise块 D. finally块
5. 创建BeautifulSoup对象时,兼容性较好且无需额外安装的解析器是( )
A. lxml B. html5lib
C. html.parser D. xml
6. soup.title 的作用是( )
A. 获取所有 title 标签
B. 获取第一个匹配的 title 标签
C. 获取 title 标签的属性字典
D. 获取 title 标签内的文字
7. 使用 select 方法提取类名为 sister 的 a 标签,语法正确的是( )
A. soup.select("a.sister") B. soup.select("#sister a")
C. soup.select("a#sister") D. soup.select(".sister a")
8. soup.prettify() 的作用是( )
A. 提取标签内的文字内容
B. 格式化输出soup对象的内容,便于查找标签特征
C. 设置响应内容的编码
D. 抛出爬虫请求的异常
9. 下列关于 res.text 的描述,正确的是( )
A. 返回二进制形式的响应内容
B. 返回URL对应的页面文本内容
C. 返回响应的状态码
D. 返回分析出的编码方式
10. 爬取多组数据时, len(tag_list) 的作用是( )
A. 获取标签列表的长度,用于循环遍历
B. 设置数据的显示格式
C. 提取标签内的数值内容
D. 查找指定id的标签
二、判断题
11. 网络爬虫若未设置停止条件,会一直爬取直到无法获取新的URL地址。( )
12. requests.get() 方法中, params 参数是控制访问的12个参数,为必选参数。( )
13. bs4 模块只能解析HTML文本,无法解析XML文本。( )
14. soup.标签.attrs 会以列表类型返回标签的所有属性与值。( )
15. CSS选择器中, #youjia dt 的 # 代表类选择。( )
三、填空题
16. 网络爬虫的基本工作流程中,爬取对应URL地址的网页时,需要获取新的______,并将其放入URL队列中。
17. 使用 requests 模块时,若要让爬取的中文正常显示,需设置 res.encoding = ______ 。
18. raise_for_status() 方法若判断响应状态码不是200,会抛出______异常。
19. BeautifulSoup将复杂的HTML文档转换成树状结构,每个节点都是______对象。
20. 爬取结构化数据时,通过 ______ 属性可以提取标签中的文字内容。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$
8.4网络爬虫应用
一、选择题
1. 网络爬虫的基本工作流程中,第一步是( )
A. 获取新的URL地址并放入队列
B. 获取初始的URL
C. 设置停止条件
D. 从URL队列中读取新URL
【答案】B
【解析】网络爬虫的工作流程遵循“初始化-爬取-迭代”的逻辑,第一步是确定并获取初始URL,后续再基于初始URL爬取网页、提取新URL并循环操作。
2. 下列不属于 requests 模块同类功能的库是( )
A. urllib B. lxml
C. urllib2 D. httplib2
【答案】B
【解析】 requests 、 urllib 、 urllib2 、 httplib2 均为Python中用于发送网络请求的库; lxml 是用于解析HTML和XML的库,与网络请求功能无关。
3. 响应对象的 apparent_encoding 属性作用是( )
A. 设置响应内容的编码
B. 返回从内容中分析出的响应编码方式
C. 返回网页的二进制内容
D. 返回字典格式的响应头
【答案】B
【解析】 apparent_encoding 会基于响应内容自动分析出对应的编码方式,属于只读属性; res.encoding 用于设置编码, res.content 返回二进制内容, res.headers 返回响应头字典。
4. 使用 try-except 处理爬虫异常时,异常会被哪个代码块捕获( )
A. try块 B. except块
C. raise块 D. finally块
【答案】B
【解析】 try-except 是Python的异常处理结构, try 块执行可能抛出异常的代码,若出现异常,程序会跳转到对应的 except 块捕获并处理异常; raise 是主动抛出异常的关键字, finally 块无论是否出现异常都会执行。
5. 创建BeautifulSoup对象时,兼容性较好且无需额外安装的解析器是( )
A. lxml B. html5lib
C. html.parser D. xml
【答案】C
【解析】 html.parser 是Python标准库内置的解析器,无需额外安装,兼容性较好; lxml 和 html5lib 需要手动安装, xml 解析器主要用于XML文本,对HTML的兼容性较差。
6. soup.title 的作用是( )
A. 获取所有 title 标签
B. 获取第一个匹配的 title 标签
C. 获取 title 标签的属性字典
D. 获取 title 标签内的文字
【答案】B
【解析】通过 soup.标签名 的方式,只能获取HTML文档中第一个匹配该标签名的Tag对象;获取所有同名标签需使用 find_all() 方法, soup.title.attrs 获取属性字典, soup.title.string 获取标签内文字。
7. 使用 select 方法提取类名为 sister 的 a 标签,语法正确的是( )
A. soup.select("a.sister") B. soup.select("#sister a")
C. soup.select("a#sister") D. soup.select(".sister a")
【答案】A
【解析】CSS选择器中, . 用于匹配类名,标签名与类名直接连接表示“具有该类名的该标签”,因此 a.sister 表示类名为 sister 的 a 标签;B是id为 sister 的元素下的 a 标签,C是id为 sister 的 a 标签,D是类名为 sister 的元素下的 a 标签。
8. soup.prettify() 的作用是( )
A. 提取标签内的文字内容
B. 格式化输出soup对象的内容,便于查找标签特征
C. 设置响应内容的编码
D. 抛出爬虫请求的异常
【答案】B
【解析】 prettify() 方法会将BeautifulSoup对象转换为格式规整的字符串,保留标签的层级结构,方便开发者查看和定位目标标签;提取文字用 .string ,设置编码用 res.encoding ,抛出异常用 raise_for_status() 。
9. 下列关于 res.text 的描述,正确的是( )
A. 返回二进制形式的响应内容
B. 返回URL对应的页面文本内容
C. 返回响应的状态码
D. 返回分析出的编码方式
【答案】B
【解析】 res.text 会将响应的二进制内容按照 res.encoding 设置的编码转换为字符串,即页面的文本内容; res.content 返回二进制内容, res.status_code 返回状态码, res.apparent_encoding 返回分析出的编码方式。
10. 爬取多组数据时, len(tag_list) 的作用是( )
A. 获取标签列表的长度,用于循环遍历
B. 设置数据的显示格式
C. 提取标签内的数值内容
D. 查找指定id的标签
【答案】A
【解析】 select() 方法返回的结果是列表类型, len(tag_list) 可以获取该列表的元素个数,常与 range() 函数配合,实现对列表中每个标签元素的循环遍历。
二、判断题
11. 网络爬虫若未设置停止条件,会一直爬取直到无法获取新的URL地址。( )
【答案】√
【解析】网络爬虫的迭代逻辑是基于新URL的获取,若没有设置停止条件,爬虫会持续从已爬取网页中提取新URL并进行爬取,直到无法获取新的URL为止。
12. requests.get() 方法中, params 参数是控制访问的12个参数,为必选参数。( )
【答案】×
【解析】 params 参数用于传递URL中的查询参数,属于可选参数; **kwargs 可以接收包括超时、请求头等12类控制访问的参数,同样为可选参数。
13. bs4 模块只能解析HTML文本,无法解析XML文本。( )
【答案】×
【解析】 bs4 模块的核心类BeautifulSoup支持解析HTML和XML两种文本格式,只需在创建对象时选择合适的解析器即可。
14. soup.标签.attrs 会以列表类型返回标签的所有属性与值。( )
【答案】×
【解析】 soup.标签.attrs 返回的是一个字典类型的数据,字典的键是标签的属性名,值是对应的属性值。
15. CSS选择器中, #youjia dt 的 # 代表类选择。( )
【答案】×
【解析】CSS选择器的语法规则中, # 符号用于匹配指定id的元素, . 符号才用于匹配指定类名的元素。
三、填空题
16. 网络爬虫的基本工作流程中,爬取对应URL地址的网页时,需要获取新的______,并将其放入URL队列中。
【答案】URL地址
【解析】网络爬虫的迭代爬取依赖新URL的获取,爬取当前网页后需从中提取新的URL地址,放入队列等待后续爬取。
17. 使用 requests 模块时,若要让爬取的中文正常显示,需设置 res.encoding = ______ 。
【答案】"utf-8"
【解析】 utf-8 是一种通用的字符编码格式,能够兼容绝大多数中文文字,将响应编码设置为 utf-8 可解决中文乱码问题。
18. raise_for_status() 方法若判断响应状态码不是200,会抛出______异常。
【答案】HttpError
【解析】 raise_for_status() 方法会校验HTTP响应状态码,当状态码不在200-299的成功范围内时,会抛出 requests.exceptions.HttpError 异常。
19. BeautifulSoup将复杂的HTML文档转换成树状结构,每个节点都是______对象。
【答案】Python
【解析】BeautifulSoup会将HTML文档的每一个部分都封装成Python对象,方便通过Python语法进行操作。
20. 爬取结构化数据时,通过 ______ 属性可以提取标签中的文字内容。
【答案】string
【解析】Tag对象的 .string 属性可以获取标签内的非嵌套文本内容,是爬取数值、名称等结构化文字数据的常用属性。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$
资源预览图
1
2
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。