20春学期(1709、1803、1809、1903、1909、2003)《网络爬虫与信息提取》在线作业
试卷总分:100 得分:100
一、单选题 (共 20 道试题,共 40 分)
1.浏览器用来记录用户状态信息的数据叫
A.session
B.selenium
C.moonpies
D.cookies
2.()是一个传递信息的通道。它负责将爬取博文列表页获取到的信息传递给负责爬取正文页的方法中。
A.meta
B.header
C.head
D.body
3.如果使用Python的数据结构来做类比的话,MongoDB中集合相当于一个()
A.集合
B.字典
C.列表
D.元组
4.下列关于mitmproxy的安装说法错误的是()
A.对于Mac OS系统,使用Homebrew安装mitmproxy,命令为:brew install mitmproxy
B.在windows系统中无法使用linux的命令,只能通过下载安装包来安装
C.在Ubuntu中,要安装mitmproxy,首先需要保证系统的Python为Python 3.5或者更高版本
D.UBUNTU中执行命令 sudo pip3 install mitmproxy 进行安装
5.()是Scrapy官方开发的,用来部署、运行和管理Scrapy爬虫的工具
A.Scrapyd
B.Scrapy_Deploy
C.ScrapyDeploy
D.Deploy
6.PyMongo中逻辑查询表示大于的符号是()
A.$lt
B.$gte$$lte
C.$gt
7.Python中把列表转换为集合需要使用##函数
A.set
B.list
C.convert
D.change
8.Redis中往集合中添加数据,使用关键字()
A.sappend
B.sadd
C.append
D.add
9.下面Python代码输出为(): def default_para_without_trap(para=[], value=0): if not para: para = [] para.append(value) return para print(‘第一步:{}’.format(default_para_trap(value=100))) print(‘第二步:{}’.format(default_para_trap(value=50)))
A.第一步:[100] 第二步:[50]
B.第一步:[100] 第二步:[100,50]
C.第一步:[100] 第二步:[100]
D.第一步:[100] 第二步:[]
10.Python写CSV文件需要哪个方法()
A.FileWriter
B.DictWriter
C.CsvWriter
D.CSVWriter
11.使用python定制mitmproxy,下面的语句请求的是()。{req.headers[“User-Agent”]}
A.目标网站
B.文本内容
C.user-agent
D.headers
12.Python中若定义object=[1, 2, 3, 4, 5],则print(object[:3])输出()
A.234
B.23
C.123
D.12
13.当需要把Python里面的数据发送给网页时,应先将其转换成()
A.Request
B.POST
C.Json字符串
D.GET
14.以下表示请求资源找不到的HTTP状态码为
A.500
B.404
C.301
D.200
15.Redis若要进入交互环境,需要打开终端输入()
A.redis-start
B.redis-cmd
C.redis-cli
D.redis
16.Scrapy_redis是Scrapy的“()”,它已经封装了使用Scrapy操作Redis的各个方法
A.组件
B.模块
C.控件
D.单元
17.xpath中extract方法返回值类型是()
A.集合
B.字典
C.列表
D.元组
18.下列哪项不是HTTP的请求类型()
A.SET
B.PUT
C.POST
D.GET
19.请问按哪个键可以打开Chrome自带的开发者工具()
A.F12
B.F11
C.F10
D.F1
20.以下哪个HTML标签表示定义 HTML 表格中的行()
A.<ul>
B.<tr>
C.<td>
D.<li>
二、多选题 (共 10 道试题,共 20 分)
21.Python中一个函数可以有()个return语句
A.多个
B.2
C.1
D.0
22.最常见的HTTP请求类型有()
A.SEND
B.RECEIVE
C.POST
D.GET
23.自动填充验证码的方式有
A.浏览器自动识别
B.打码网站
C.手动识别填写
D.图像识别
24.下列关于在IOS上配置charles的说法正确的是()
A.手机和电脑需要在同一个局域网下。
B.安装好证书以后,打开iOS设备上的任何一个App,可以看到Charles中有数据包在流动
C.不同ios设备之间会有比较大的差别,所以配置的时候需要找到对应的安装证书的入口。
D.HTTP代理可以使用“自动”选项。
25.Python中()与元组由类似的数据读取方式
A.集合
B.字符串
C.字典
D.列表
26.Python中有哪些实现多线程方法()
A.threading.Thread
B.process
C.multiprocess.dummy
D.PyMongoDB
27.要使用tesseract来进行图像识别,需要安装两个第三方库
A.requests
B.pytesseract
C.beautifulsoup
D.Pillow
28.BS4可以用来从()中提取数据
A.数据库
B.XML
C.JSON
D.HTML
29.Python中()容器有推导式
A.集合
B.字典
C.列表
D.元组
30.Redis中的值可以支持()
A.集合
B.有序集合
C.哈希
D.列表
三、判断题 (共 20 道试题,共 40 分)
31.MongoDB在频繁读写方面优于Redis
32.Redis的集合与Python的集合一样,没有顺序,值不重复
33.插入数据时,MongoDB会自动添加一列“_id”,也就是自增ID,每次自动加1
34.Python中写CSV文件的writerow方法参数为包含字典的列表类型
35.在MacOS下若要运行Redis可以运行解压以后的文件夹下面的src文件夹中的redis-server文件启动redis服务 src/redis-server
36.Selenium必须加载对应的webdriver才能模拟浏览器访问
37.数据抓包就是中间人爬虫的一个简单应用。所以使用Charles也是一种中间人攻击
38.网站返回的Headers中经常有Cookies,可以用mitmdump脚本使用print函数把Cookies打印出来。
39.Python中列表生成以后还可以往里面继续添加数据,也可以从里面删除数据;
40.charles配置中,安装完成证书以后,在设置中打开“关于本机”,找到最下面的“证书信任设置”,并在里面启动对Charles证书的完全信任。
41.如果通过爬虫抓取某公司网站的公开数据,分析以后发现这个公司业绩非常好,于是买入该公司股票并赚了一笔钱。这是合法的。
42.在中间人攻击中,攻击者可以拦截通信双方的通话,并插入新的内容或者修改原有内容
43.在Linux的终端使用apt-get命令安装一系列依赖库时,其中如果存在有已经安装的库,会覆盖掉之前的库重新安装
44.MongoDB是一个关系数据库产品
45.Python中条件语句在使用or连接的多个表达式中,只要有一个表达式为真,那么后面的表达式就不会执行。
46.robots.txt是一种规范,在法律范畴内
47.当运行爬虫代码后,出现”Forbidden by robots.txt”提示后,说明当前时间段被爬取的网站无法访问。
48.process_spider_output(response, result, output)是在下载器中间件处理完成后,马上要进入某个回调函数parse_xxx()前调用
49.MongoDB支持对查询到的结果进行排序。排序的方法为sort()。它的格式为: handler.find().sort(‘列名’, 1或-1或0)
50.当使用Scarpy创建爬虫时,当爬取网易云音乐首页信息时,scrapy genspider的第二个参数直接输入”163.com”就可以了