第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 属性可以获取标签内的非嵌套文本内容,是爬取数值、名称等结构化文字数据的常用属性。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $

资源预览图

第8单元8.4网络爬虫应用(练习)-《程序设计基础-Python》(高教版)同步精品课堂
1
第8单元8.4网络爬虫应用(练习)-《程序设计基础-Python》(高教版)同步精品课堂
2
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。