南开20秋学期(1709、1803、1809、1903、1909、2003、2009 )《网络爬虫与信息提取》在线作业[答案]满分答案
20秋学期(1709、1803、1809、1903、1909、2003、2009 )《网络爬虫与信息提取》在线作业
试卷总分:100 得分:100
一、单选题 (共 20 道试题,共 40 分)
1.当爬虫创建好了之后,可以使用"scrapy()" 命令运行爬虫。
A.startup
B.starwar
C.drawl
D.crawl
2.以下哪个命令是复制文件或者文件夹命令()
A.curl
B.tar -zxvf
C.mkdir
D.cp
3.Python中哪种容器一旦生成就不能修改
A.列表
B.元组
C.字典
D.集合
4.在Scrapy的目录下,哪个文件负责定义需要爬取的数据?()
A.spiders文件夹
B.item.py
C.pipeline.py
D.settings.py
5.使用UI Automatorr根据坐标来滑动桌面的操作是得到相应控件后使用命令()
A.swipe
B.move
C.scroll
D.fly
6.xpath中extract方法返回值类型是()
A.列表
B.元组
C.字典
D.集合
7.以下哪个命令是linux下解压缩命令()
A.curl
B.tar -zxvf
C.mkdir
D.cp
8.Python中定义函数关键字为()
A.def
B.define
C.func
D.function
9.下列说法错误的是()
A.小程序的请求极其简单,基本上没有验证信息
B.用Python来请求小程序的后台接口从而获取数据,比请求异步加载网页的后台接口要复杂很多。
C.如果目标网站有微信小程序,那么一定要优先调查能否通过小程序的接口来抓取数据。
D.小程序的反爬虫能力比网页版的低很多。使用小程序的接口来爬数据,能极大提高爬虫的开发效率。
10.当需要把Python里面的数据发送给网页时,应先将其转换成()
A.Json字符串
B.GET
C.POST
D.Request
11.Redis中从集合中查看有多少个值,用关键字()
A.scard
B.card
C.count
D.distinct
12.Python中把集合转换为列表需要使用##函数
A.set
B.list
C.convert
D.change
13.lxml库中etree模块的()方法把Selector对象转换为bytes型的源代码数据
A.etree.tostring
B.etree.convertBytes
C.etree.toBytes
D.etree.convertstring
14.Python操作CSV文件可通过()容器的方式操作单元格
A.列表
B.元组
C.字典
D.集合
15.Python在Windows路径字符串左引号的左边加()符号来避免反斜杠问题
A.s
B.c
C.d
D.r
16.如果使用Python的数据结构来做类比的话,MongoDB中库相当于一个()
A.列表
B.元组
C.字典
D.集合
17.HTTP常用状态码表明服务器正忙的是()
A.500
B.503
C.403
D.404
18.使用xpath方法的返回类型是()
A.列表
B.元组
C.字典
D.集合
19.下面Python代码输出为(): def default_para_trap(para=[], value=0): para.append(value) return para print('第一步:{}'.format(default_para_trap(value=100))) print('第二步:{}'.format(default_para_trap(value=50)))
A.第一步:[100] 第二步:[100,50]
B.第一步:[100] 第二步:[50]
C.第一步:[100] 第二步:[]
D.第一步:[100] 第二步:[100]
20.下面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] 第二步:[100,50]
B.第一步:[100] 第二步:[50]
C.第一步:[100] 第二步:[]
D.第一步:[100] 第二步:[100]
南开20秋学期(1709、1803、1809、1903、1909、2003、2009 )《网络爬虫与信息提取》在线作业[答案]多选题答案
二、多选题 (共 10 道试题,共 20 分)
21.使用Selennium获取网页中元素的方法有
A.find_element_by_name
B.find_element_by_id
C.find_elements_by_name
D.find_elements_by_id
22.下列关于在IOS上配置charles的说法正确的是()
A.不同ios设备之间会有比较大的差别,所以配置的时候需要找到对应的安装证书的入口。
B.手机和电脑需要在同一个局域网下。
C.HTTP代理可以使用“自动”选项。
D.安装好证书以后,打开iOS设备上的任何一个App,可以看到Charles中有数据包在流动
23.Python中有哪些实现多线程方法()
A.multiprocess.dummy
B.threading.Thread
C.process
D.PyMongoDB
24.Redis中的值可以支持()
A.列表
B.哈希
C.集合
D.有序集合
25.cookies的缺点是
A.实现自动登录
B.跟踪用户状态
C.http中明文传输
D.增加http请求的流量
26.Python中通过Key来从字典object中读取对应的Value的方法有()
A.object[key]
B.object.get(key)
C.object.pop(key)
D.object.pop()
27.为了解决爬虫代码本身的错误引起的异常,可以采用下列哪些方法
A.仔细检查代码
B.开发爬虫中间件
C.开发下载器中间件
D.等待
28.Python中()与元组由类似的数据读取方式
A.字符串
B.列表
C.字典
D.集合
29.HTTP常用状态码表明请求被正常处理的有()
A.200
B.301
C.302
D.204
30.PyMongo更新操作有()
A.update
B.update_all
C.update_one
D.update_many
三、判断题 (共 20 道试题,共 40 分)
31.在发送请求时需要注意requests提交的请求头不能与浏览器的请求头一致,因为这样才能隐藏好自己达到获取数据的目的
32.如果目标网站本身就是提供公众查询服务的网站,那么使用爬虫是合法合规的。
33.Redis中使用lrange读取数据后数据也会删除
34.Redis插入数据都是插入到列表右侧,因此读取数据也是从右侧读取
35.如果通过爬虫抓取某公司网站的公开数据,分析以后发现这个公司业绩非常好,于是买入该公司股票并赚了一笔钱。这是合法的。
36.HTTP状态码中303状态码明确表示客户端应当采用POST方法获取资源
37.process_spider_output(response, result, output)是在下载器中间件处理完成后,马上要进入某个回调函数parse_xxx()前调用
38.通用搜索引擎的目标是尽可能大的网络覆盖率,搜索引擎服务器资源与网络数据资源互相匹配
39.在使用多线程处理问题时,线程池设置越大越好
40.需要登录的网站一般通过GET请求就可以实现登录。
41.process_spider_input(response, spider)是在爬虫运行yield item或者yield scrapy.Request()的时候调用
42.Python中函数返回值的个数可以是多个
43.爬虫的源代码通过公开不会对被爬虫网站造成影响
44.通用网络爬虫通常采用串行工作方式
45.虽然MongoDB相比于MySQL来说,速度快了很多,但是频繁读写MongoDB还是会严重拖慢程序的执行速度。
46.爬虫中间件的激活需要另外写一个文件来进行
47.在Linux的终端使用apt-get命令安装一系列依赖库时,其中如果存在有已经安装的库,会覆盖掉之前的库重新安装
48.Redis中查询列表长度命令llen中l代表left,即从左侧开始数
49.Charles能截获HTTP和HTTPS的数据包,如果网站使用websocket就可以截获。
50.mitmproxy的强大之处在于它还自带一个mitmdump命令。这个命令可以用来运行符合一定规则的Python脚本
南开20秋学期(1709、1803、1809、1903、1909、2003、2009 )《网络爬虫与信息提取》在线作业[答案]历年参考题目如下: