Python 网络爬虫与信息提取(第三周)

Python网络爬虫之实战 (第3周)

1.Beautiful Soup库与re库之间关系,描述正确的是:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬
A
这两个库没有关系
B
re库中可以加载Beautiful Soup库
C
re库能实现HTML解析,功能上与Beautiful Soup库类似
D
Beautiful Soup库中可以加载re库
正确答案: A
两者没关系,re库以字符串模式匹配与检索方式提取信息,与Beautiful Soup库不同。

2.‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬以下不是正则表达式优势的选项是:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬
A
特征表达
B
简洁
C
实现自动化脚本
D
一行胜千言
正确答案: C
尽管正则表达式可用于自动化脚本,但不直接体现自动脚本的作用。

3.‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬re库可以使用如下方式表示正则表达式:r’[1-9]\d{5}’,其中r是什么意思?‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬
A
原生字符串标记
B
正则表达式标记
C
开始位置标记
D
强制标记
正确答案: A
字符串包括:普通字符串和原生字符串,原生字符串中没有转义符(\)。

4.‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬ 正则表达式:\d{3}-\d{8}|\d{4}-\d{7}能匹配哪个?‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬
A
010-1234567
B
010-12345678
C
01012345678
D
0521-12345678
正确答案: B
\d{3}-\d{8}|\d{4}-\d{7}

表示:3个数字-8个数字 或者 4个数字-7个数字

5.‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬正则表达式:^[A-Za-z\d]+$的含义是什么?‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬
A
一个26个字母构成的字符串
B
由26个字母和特殊字符d组成的字符串
C
由26个字母组成的字符串
D
由26个字母和数字组成的字符串
正确答案: D
以下这些操作符是正则表达式中最常用的:

在这里插入图片描述

在这里插入图片描述
6.‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬正则表达式:^[A-Za-z]+$的含义是什么?‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬
A
由26个字母和特殊字符d组成的字符串
B
由26个字母组成的字符串
C
由字母a和z、A和Z组成的字符串
D
由26个字母和数字组成的字符串
正确答案: B
以下这些操作符是正则表达式中最常用的:

在这里插入图片描述

在这里插入图片描述

7.‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬正则表达式:^-?\d+$的含义是什么?‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬
A
由26个字母组成的字符串
B
由26个字母和数字组成的字符串
C
一个整数形式的字符串
D
一个带有负号的数字字符串
正确答案: C
以下这些操作符是正则表达式中最常用的:

扫描二维码关注公众号,回复: 11348829 查看本文章

在这里插入图片描述

在这里插入图片描述

8.‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬正则表达式:^[0-9]*[1-9][0-9]*$的含义是什么?‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬
A
由0到9数字组成的字符串
B
正整数形式的字符串
C
整数形式的字符串
D
数字和*组成的字符串
正确答案: B
以下这些操作符是正则表达式中最常用的:

9.‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬正则表达式:[1-9]\d{5}的含义是什么?‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬
A
整数形式的字符串
B
由0到9数字组成的字符串
C
首位不为0的6长度数字形式字符串
D
长度为5的正整数形式字符串
正确答案: C
以下这些操作符是正则表达式中最常用的:

  1. 正则表达式:[\u4e00-\u9fa5]的含义是什么?‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬
    A
    由\u4e00到\u9fa5字符组成的字符串
    B
    一个在\u4e00到\u9fa5之间的字符
    C
    由\u4e00到\u9fa5中一个或多个字符组成的字符串
    D
    \u4e00或\u9fa5
    正确答案: B
    以下这些操作符是正则表达式中最常用的:

11.以下不能够匹配所有合法IP地址的正则表达式是:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬
A
\d+.\d+.\d+.\d+
B
(([1-9]?\d|1\d{2}|2[0-4]\d|25[0-5]).){3}([1-9]?\d|1\d{2}|2[0-4]\d|25[0-5])
C
\d{3}.\d{3}.\d{3}.\d{3}
D
\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}
正确答案: C
\d{3}.\d{3}.\d{3}.\d{3}能匹配诸如:192.168.101.101类型的IP地址,但无法匹配:10.0.0.55类型的IP地址。

12.‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬ 以下不是re库函数的是:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬
A
re.sub()
B
re.finditer()
C
re.search()
D
re.add()
正确答案: D
re库没有add()函数。

13.‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬以下不是re库函数的是:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬
A
re.split()
B
re.match()
C
re.findall()
D
re.matchall()
正确答案: D
re库没有matchall()函数。

14.re库中re.split(pattern, string, maxsplit=0)函数的作用是什么?‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬
A
将一个字符串按照正则表达式匹配结果进行分割
B
将正则表达式按照字符串进行替换
C
将正则表达式按照字符串进行分割
D
在一个字符串中替换所有匹配正则表达式的子串
正确答案: A
re.split()与字符串的split()方法类似,所不同的是,re.split()用正则表达式来分割字符串。

15.‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬ re库,re.findall(pattern, string)函数的作用是什么?‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬
A
搜索字符串,返回一个匹配子串
B
搜索字符串,以长字符串形式返回全部能匹配的子串
C
搜索字符串,以列表类型返回全部能匹配的子串
D
搜索字符串,返回最后一个子串
正确答案: C
注意:findall()返回的是列表,在不适用for…in…迭代的时候,这个函数十分有用。

16.‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬ re库中,Match对象属性.re的含义是:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬
A
匹配时的待匹配文本
B
匹配后的字符串结果
C
匹配时使用的正则表达式
D
正则表达式匹配模式
正确答案: C
Match对象匹配时使用的正则表达式。

17.与r'\d{3}-\d{8}|\d{4}-\d{7}'等价的是:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬
A
‘d{3}-d{8}|d{4}-d{7}’
B
‘\d{3}-\d{8}|\d{4}-\d{7}’
C
‘\d{3}-\d{8}|\d{4}-\d{7}’
D
r’\d{3}-\d{8}’ or r’\d{4}-\d{7}’
正确答案: B
r’‘等价于’\’

18.‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬ 与正则表达式 r'^[A-Za-z]+$'等价的是:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬
A
‘^[A-Za-z]+$’
B
‘^[A-Za-z]+$’
C
1+$’
D
2+$’
正确答案: D
如果r’string’中没有转义符,它等价于’string’。

19.‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬ re库中,贪婪匹配含义正确的是:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬
A
每个匹配中,输出匹配最长的字符串
B
输出所有匹配中最长的匹配字符串
C
re库默认采用最小匹配,并不采用贪婪匹配
D
输出可能的所有匹配
正确答案: A
贪婪匹配是re库的默认选项,指输出每个匹配时,尽可能匹配最长的字符串并输出。

20.‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬正则表达式使用中,关于编译的说明,错误的是:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬
A
使用正则表达式进行匹配,一定要进行编译
B
将正则表达式语法变成正则表达式
C
将字符串变成正则表达式对象
D
编译有助于提高后期正则表达式的匹配性能
正确答案: A
使用正则表达式不一定需要编译,只有将正则表达式变成一个对象时才需要编译。


  1. A-Za-z ↩︎

  2. A-Za-z ↩︎

猜你喜欢

转载自blog.csdn.net/xiaoyong5854/article/details/84668765