24秋学期(高起本:1809-2103、专升本/高起专:2103)《网络爬虫与信息提取》在线作业-00003# s6 A8 W, @, g/ @8 k
试卷总分:100 得分:1000 G. a# P: \* ^& }8 A9 C7 ?) X. \
咨询:ffffd79& \$ E- b/ M( H2 L3 @# [
一、单选题 (共 20 道试题,共 40 分)0 ] |8 _1 }1 G4 x/ }
1.Python中若定义object=(1, 2, 3, 4, 5),则print(object[1:3])输出()7 i$ D3 i0 ^" d9 {- L/ Y- m" u
A.12" g8 |/ E+ k1 |& N9 R% K2 j# Q y
B.123; G# E2 ]! k6 n
C.239 D, s! i2 H T v2 b0 E
D.234
+ l$ W3 O6 K' }. e2.如果使用Python的数据结构来做类比的话,MongoDB中文档相当于一个()
- m% e- D; _2 tA.列表
3 x+ J4 m! `" H1 H% i& ?, UB.元组7 `( H: O5 J* v: R. S0 S
C.字典
n3 J9 S4 T( p- E+ cD.集合
' X) ^' @1 [6 y3 E3.Redis中如果不删除列表中的数据,又要把数据读出来,就需要使用关键字()0 J5 B% [- O$ }4 d) y) T
A.range8 w* a# W) d% W, y; l4 Z, F
B.lrange
: ^, |; V8 E7 ^" W3 m( k& wC.srange' m) j. e( p0 U6 D E& W3 a
D.pop! m! ^0 d2 k$ D2 |9 l# ?
4.使用UI Automator打开微信的操作是获取相应图标后使用命令()7 M# h7 W+ F9 `7 J* v
A.touch5 `. t) |$ i B9 A! h* P1 U2 N
B.click
3 t+ P7 [2 J: G5 T' a4 V3 L# ^C.push
5 t% p I6 ?# f1 ^2 GD.hover6 K; h3 c3 K% ~! J
5.Python正则表达式模块的findall方法提取内容包含多个,则返回结果的列表中会包含()
. T) u* g: P8 d3 h& GA.列表7 U4 V# v# Q, Z7 t- q
B.元组
! v) ~, \2 ^! B; Z+ b; z k% xC.字典+ A, w( q/ B" D* F5 g; k
D.集合' ?1 Q" V( o8 q( ?; o4 z
6.使用UI Automatorr根据坐标来滑动桌面的操作是得到相应控件后使用命令()4 K( M& K3 a( F# H3 w, \
A.swipe
! [: {- u8 _! a6 {9 PB.move6 B+ w# C( Y3 N8 x7 a
C.scroll
1 ]8 C0 h6 y- _# uD.fly
* F8 |' ^1 O( L& g7.MongoDB中数据存储的形式类似于()5 e4 e8 G) S& \: a# m v
A.列表8 U3 d5 b1 E8 L: k! ^
B.元组
- p% |; y# F& L- G5 p9 N) EC.字典
+ r F# z7 a/ l2 x" g3 zD.集合0 B2 G8 j+ [5 u% s" p2 Z0 t" A
8.通常使用()工具来模拟浏览器进行爬虫请求0 ^9 S& ^ W8 o/ K! h% i) U7 R5 W
A.Selenium# q! R: T& g( f& M* x4 |% F2 T1 G
B.Chrome/ U; v5 I7 W! m+ f6 T& S9 _. k* P
C.ChromeDriver
6 d6 L1 O$ {2 u& V3 Y/ fD.WebDriver
( l! v9 [9 f" k2 { y9.下列哪项不是HTTP的请求类型()* X# q& y. R w
A.GET
& r/ G* N. ~4 F3 i$ YB.POST" l2 l( P- k% s7 j+ n
C.PUT
: I x' t' }( E/ B' q+ Q" X1 C, QD.SET
3 l6 x* b. e' y' x- Q6 E. E c10.Redis中写数据到列表中,使用关键字()
/ j3 }" z% }* B, y* R1 F/ |& IA.push
: U- g) B3 @1 h/ O. m/ TB.append9 B- M9 g0 d6 Z* ?1 p4 }: L
C.lpush3 d; q0 l) y6 H2 }' e
D.lappend
9 H7 d5 R3 L @11.Redis中读取数据语句lrange chapter 0 3,那么表示读列表中()个值
- S1 \: S( V: E5 W8 W8 vA.2 U3 t- h5 V2 [* M" R
B.3& D! v `; ~* I3 W. T% ?
C.4
+ g& x: L# x' cD.5
' n% G7 p6 b3 m' C% x) T+ C0 c9 |12.查看网站请求一般在Chrome开发者模式下的()选项卡中查看
4 ~9 _) U! g8 D& X& k9 zA.Console
2 v. U& J" [ q2 c/ Y2 [9 DB.Sources
`4 \; u& k# f2 x9 d; F2 ~5 u8 ?C.Network
4 X3 @' @* F4 N! p: W6 x8 FD.Performance
6 V! O, E$ v7 W! h) j/ T1 H0 ^13.在Python中,为了使用XPath,需要安装一个第三方库()
. f8 q7 p: Z1 I- O# f2 rA.lxml+ c) ?' z; m$ h0 Y& a: I. M
B.xml
a! e3 L* Z4 r2 o9 hC.xpath
: E& }8 ?5 V) V0 d, E! j$ ~/ ND.path
* T5 D1 c A9 U5 G! A& {1 ]& h14.Python中Object=(1, 2, 3, 4, 5),则Objcet是()+ ~9 o( C. C/ Z. @/ Z" {& c% e! y- q
A.列表2 c3 m7 W# G2 S1 _' f, C g) k+ |
B.元组
' R& P* o g# @4 Y5 ^C.字典
) X v7 v; R+ V; S; [D.集合
0 v' R/ o5 n0 `: v' Z# y$ g- |9 ~15.使用UI Automatorr点亮屏幕的操作是得到相应控件后使用命令()
$ B! a- \4 r5 t3 ]# }A.wakeup, J" e/ \( |, t: \; b1 m) H
B.light0 ~4 u" |4 z( X) t/ y& q
C.bright& p/ ]9 n, A4 c- p
D.sleep7 L! O4 `: q5 K. S0 k) g9 L3 O6 p
16.当爬虫运行到yield scrapy.Request()或者yield item的时候,下列哪个爬虫中间件的方法被调用?
' V1 W) X4 p OA.process_spider_output()) R5 X4 u" O- n+ ^" @& w) r& y9 n
B.process_spider_exception()
0 ` @# ]4 q0 r7 u1 `5 gC.process_spider_input()
* b/ `. U9 {4 Y6 g, mD.process_start_ requests(). S+ M+ P5 D1 S, X
17.HTTP状态码401表示
) |# Z; X& V# \9 e+ g7 ZA.请求报文中可能存在语法错误4 }! g3 o* M$ A8 W! e+ u `
B.请求需要通过HTTP认证
. N4 {& Q' w! yC.请求资源的访问被拒绝8 Z7 J/ q7 s, p
D.服务器上没有请求的资源7 |, k8 P- J3 S3 m7 f" R
18.windows中创建定时任务的命令为
7 f. l8 N* o, N/ N6 V tA.task
" h# t+ \2 ^3 l- W) j; YB.schtasks
( c3 x s/ p; s9 v$ ZC.createtasks9 u/ C- K) y0 v# j0 P4 C" J P7 O+ W
D.maketasks
6 T* c d, w R8 k E; U/ J2 b2 M- U19.Python中若定义object=[1, 2, 3, 4, 5],则print(object[-4])输出()# g7 d* V3 r9 r9 W/ g- ]' o
A.NULL5 i9 p& b) d# g$ [
B.2; o* W7 E6 s5 \) M" d
C.4
, l+ G0 j4 ? tD.程序报错. d6 r# o6 Y, d: F* E
20.在Scrapy的目录下,哪个文件负责存放爬虫文件?()
$ V8 }- y# x- ^1 _( d4 B9 oA.spiders文件夹
3 Q- L- |0 W3 P& e/ uB.item.py
2 a$ b9 q5 y4 U* f6 y% q! F3 sC.pipeline.py# f3 i5 I% v) y& S
D.settings.py
n* `7 u# e1 E3 j7 O T: d' X4 L二、多选题 (共 10 道试题,共 20 分)( B6 L0 g0 G/ O7 H
21.在配置ios使用Charles的操作中,正确的有()
" w- K8 a$ b' \ ]) BA.对于苹果设备,首先要保证计算机和苹果设备联在同一个Wi-Fi上。
3 j, n3 T |" Z3 OB.选择“HTTP代理”下面的“手动”选项卡,在“服务器”处输入计算机的IP地址,在“端口”处输入8888
' X" a& ^& t. d+ E. Y- ~% f4 _C.输入完成代理以后按下苹果设备的Home键,设置就会自动保存。
D: m2 j: z4 y/ G( R* \* J, x- Z8 ]D.安装完成证书以后,在设置中打开“关于本机”,找到最下面的“证书信任设置”,并在里面启动对Charles证书的完全信任
' M: R, [; q: @" `22.一个可行的自动更换代理的爬虫系统,应该下列哪些功能?
/ q; H4 T' ?& ~7 U9 i. QA.有一个小爬虫ProxySpider去各大代理网站爬取免费代理并验证,将可以使用的代理IP保存到数据库中4 k+ T/ J0 g( q: d
B.在发现某个请求已经被设置过代理后,什么也不做,直接返回) E# r2 _% U9 y
C.在ProxyMiddlerware的process_request中,每次从数据库里面随机选择一条代理IP地址使用$ k- R% l9 |: n2 H
D.周期性验证数据库中的无效代理,及时将其删除4 h/ G5 a, n3 P+ P( E" D9 q
23.HTTP常用状态码表明表明客户端是发生错误的原因所在的有()5 p! T8 {$ m/ U
A.403; N( j8 v9 I6 G4 s: Q$ d- F
B.404
( I' m2 V/ J6 P1 _* W3 z. p2 hC.5004 t. D" l* R' I
D.5031 y A) v; L/ a: l, H/ M; m9 X
24.cookies的缺点是' p1 t6 J6 ~ N8 M3 u" V
A.实现自动登录* _& k4 z" T. _* n' {
B.跟踪用户状态- O7 {) ` |* K) L& b, h# o/ _. n
C.http中明文传输
9 t3 D; i q' w+ s6 yD.增加http请求的流量
, G2 Z0 f2 y4 ^9 U25.requests中post请求方法的第二个参数可以为()
- P% F! I1 m8 V$ a: F+ ?A.字典+ D" L7 z- D' g8 ~1 M
B.列表
. v- M! k) Y, v' LC.json数据7 O: I. Z4 G7 @% b3 b3 O( C
D.字符串
) \+ P A+ ?! J/ j26.Python中()容器有推导式
; R- b4 G: L; s }9 w8 DA.列表
9 t3 M. M7 `- e; `8 m/ v" }B.元组
7 y/ b+ S; z) S u% [5 WC.字典+ ~- a$ N6 U0 m% m( V3 [/ ^. Z; ?
D.集合/ }; s( |6 B! O, f* u
27.以下HTTP状态码表示服务器没有正常返回结果的是
; f/ B/ n( e# {A.2007 o, R$ r {; V3 d& H6 y: ?
B.301
6 \+ W6 v" G, N+ z# ?6 v0 o; ]C.4046 t* x5 L$ i5 n* G: K+ |. c
D.500
( ~4 q. m* u9 y, n28.如果爬虫爬取的是商业网站,并且目标网站使用了反爬虫机制,那么强行突破反爬虫机制可能构成()
4 s6 t+ g. G8 B9 ?. {1 `9 M6 AA.非法侵入计算机系统罪
7 C& X% ^$ |2 m* Q3 s e! y3 BB.非法获取计算机信息系统数据罪% j4 P, L1 C! P7 U8 D
C.非法获取计算机数据罪8 T* `; w3 p' d& J# K: b) O
D.非法获取系统罪+ d" o3 I- e5 V+ A' U. x
29.Python中通过Key来从字典object中读取对应的Value的方法有()
, C: h( r; T( e7 Z& Q! D8 RA.object[key]
4 W. z2 ?' j) d. ]! d3 DB.object.get(key)
- o6 Y' E' Q3 Z' VC.object.pop(key)& q8 H0 n% `% B) X( R+ t9 l
D.object.pop(). ?1 y1 Z, ` h# r3 |" K: O, Z% [
30.Python中一个函数可以有()个return语句
7 ~6 V! N- a/ B. s, k3 s" CA.0. n* e; n7 X+ \- C+ G
B.19 N$ `8 M' t% a% D& G2 A
C.多个
% H" ^3 [$ y) Y) c, x9 AD.2+ e$ z5 Y. b( Z
三、判断题 (共 20 道试题,共 40 分)
& Q& `: q' |8 m; T4 B) d- s. ^31.Python中使用下面代码打开文件也需要对文件进行close关闭操作 with open('文件路径', '文件操作方式', encoding='utf-8') as f
- |8 n( N8 I! k# _' e' z32.使用异步加载技术的网站,被加载的内容可以在源代码中找到1 p. U* R, Q, B2 w
33.cookies在http请求中是明文传输的。
- N$ a+ ]9 @# L) J, {- b! w* J34.上课传纸条中,传递纸条的人就可以发起中间人攻击。9 }5 w l, M! {; ^: P# v- f6 Q/ z' B
35.如果通过爬虫抓取某公司网站的公开数据,分析以后发现这个公司业绩非常好。于是将数据或者分析结果出售给某基金公司,从而获得销售收入。这是合法的。
# T% F( ?3 R) W36.在有spiders何setting.py这两项的情况下,可以写出爬虫并且保存数据,items.py和pipelines.py文件是原作者的失误而导致的冗余文件。
3 @' O. N3 J E; U, Z J37.当使用Scarpy创建爬虫时,当爬取网易云音乐首页信息时,scrapy genspider的第二个参数直接输入"163.com"就可以了
9 B( H5 \4 G) V0 h4 {( e' @! L38.当使用Charles监控iOS设备或者Android设备的数据包以后,打开微信小程序,小程序的数据包不能自动被Charles抓住,需要另作处理。
5 L7 _! u6 v' o1 [! i2 r" z39.HTTP状态码中303状态码明确表示客户端应当采用POST方法获取资源# k' E0 L2 A' ]" t+ n4 h! \7 T
40.通用网络爬虫通常采用串行工作方式# j' K/ k A/ ^% h- f1 m6 V
41.为了保证数据插入效率,在内存允许的情况下,应该一次性把数据读入内存,尽量减少对MongoDB的读取操作。
$ O T! e) ?1 N! R0 `! e42.中间人爬虫就是利用了中间人攻击的原理来实现数据抓取的一种爬虫技术
8 z/ r9 o( x( n4 D43.Scrapy的工程名字不能使用"scrapy",否则爬虫会无法运行。除此以外工程名不受限制。4 Q, a; J# B! x/ W4 U- i& `- @
44.通用搜索引擎的目标是尽可能大的网络覆盖率,搜索引擎服务器资源与网络数据资源互相匹配
# P' l* B1 b6 C6 i9 F45.Python中写CSV文件的writerows方法参数为字典类型- ]( {1 D9 T5 f6 Y+ N) ^
46.中间人攻击也是抓包的一种。
1 h! f7 u' l1 d47.验证码必须通过手动填充识别。
1 Q7 g7 G* o% o$ y" M$ \ V48.XPath提取出来的内容是一个SelectorList对象,它的第0个元素就是网页的源代码。
$ G/ c4 Z [# m6 \# ?49.Linux环境中,Virtualenv创建的虚拟Python环境中,执行pip命令安装第三方库就不需要使用sudo命令了。
$ M% t$ h$ Z- R2 A7 f; _0 W% Z50.使用AJAX技术,可以在不刷新网页的情况下更新网页数据 |