天天看点

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

以下这些操作符是正则表达式中最常用的:

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

6.‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬正则表达式:

^[A-Za-z]+$

的含义是什么?‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

A

由26个字母和特殊字符d组成的字符串

B

由26个字母组成的字符串

C

由字母a和z、A和Z组成的字符串

D

由26个字母和数字组成的字符串

正确答案: B

以下这些操作符是正则表达式中最常用的:

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

7.‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬正则表达式:

^-?\d+$

的含义是什么?‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

A

由26个字母组成的字符串

B

由26个字母和数字组成的字符串

C

一个整数形式的字符串

D

一个带有负号的数字字符串

正确答案: C

以下这些操作符是正则表达式中最常用的:

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

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 ↩︎