|
22秋学期(高起本1709-1803、全层次1809-2103)《网络爬虫与信息提取》在线作业-000032 F4 C! B6 c/ a, v' R' K
试卷总分:100 得分:100
, K3 P% {$ P9 Z/ V# P+ H一、单选题 (共 20 道试题,共 40 分)- v7 N! b8 |9 B; ~8 Z4 o# @! A
1.Scrapy自带的待爬队列是()
2 P, r6 F8 [6 q2 f) D" t" wA.deque i/ ^' S6 F7 E" R& w, x
B.queue
1 ]1 g6 P( q9 b2 j& q' q! pC.list
: X: ?& ?! X) O) a" h% qD.lqueue7 q0 `. r8 e! B0 @+ T& C- [( I, u
资料:4 e& J8 a. w, h& |( B
; B8 m# r6 R! `" |3 L1 `: m2.Python正则表达式模块的findall方法提取内容包含多个,则返回结果的列表中会包含() q! R8 X% c3 F. h; p
A.列表' f3 T. [) ~2 b( j( r( t
B.元组6 ?& T1 C+ S0 X: m
C.字典3 ~5 l6 C. q& Z
D.集合
9 h$ g0 U: X% S; V% o' ^资料:1 [+ K' t' y: w9 x1 j: H: C
2 M. q* ?! F/ T; U, R/ J3.Redis是一个开源的使用()语言编写" s3 b. v t( K: b% r0 B
A.ANSI C
. Y& i2 Q( \( B' {6 G8 ?B.C++
5 Z0 m* i& r7 ?1 l* v4 D1 I6 B+ XC.JAVA6 o3 X5 R( r" x3 s* A
D.Python8 S; Q' M0 x) y! @
资料:' u& m# R) @+ T6 E2 D7 q/ O& h, r
' k0 `/ [2 z3 i& k1 H( h
4.Python写CSV文件需要哪个方法()
" ^& k; Y0 s" L0 B" y# k# x% l EA.CSVWriter
3 E' f' s& f4 Y: a7 Z0 dB.CsvWriter
C& p+ G. |. a+ M) \C.DictWriter9 a4 l( }! S" j h5 ^0 O
D.FileWriter: r% A/ A3 }3 q* u7 ?2 d
资料:
5 Y4 G- Q' N, C5 v' i4 x+ ~9 c5 o2 ~0 C, w3 R m q! z; x
5.使用Xpath构造属性值包含相同字符串的路径采用()方法
9 r2 D7 R% O' t% x8 TA.contain
# Z4 a- b b$ P5 IB.contains+ c# _" l8 U5 v( z5 ^ s
C.include; j+ v& t/ ?7 d0 c2 W
D.includes
' p, ^2 k: e7 D, E! V% [资料:, g% M& Z$ ^: J8 H, S- f
' x) C0 N) b7 a6 P' d, F6.以下关于Charles的说法正确的是( )
2 F/ M# L, ]8 L3 E7 }6 {A.Charles是一个跨平台的HTTP抓包工具,可以截取HTTP或者HTTPS请求的数据包* [4 k4 E5 t% @9 s
B.Charles有Windows 32/64版和Linux 64 版,但是目前还没有对Mac OS进行有效的支持。
- I& v4 r& X! o$ W4 g% Z' y- L! ]C.Charles上面滚动的数据就是目前计算机发起的数据包。单击工具栏上面的黄色笤帚图标,可以清停止抓包。. f3 h$ ~. p+ V0 `2 M
D.在Charles启动时,系统自带浏览器的部分HTTP流量不会经过Charles。" ]% Z2 Y! N* _4 p% x
资料:" v1 s4 ~8 a: {0 C" p5 g' H
% }- p( q/ J, N& N. ]* E" I7.Redis中写数据到列表中,使用关键字()! |- S! s9 B f8 O1 c/ W) I) C
A.push; L2 S6 q4 d$ {) ]# x, R: j
B.append3 C, J2 N2 b6 h
C.lpush
# G4 b" x) ~+ _+ W* nD.lappend8 s) R$ r2 m% @3 b/ ?; D2 m
资料:- v7 x- |/ _1 v( O2 I
- _; ? Q: y7 N' n3 |) @8.打开终端,输入(),屏幕上会出现Python的路径
9 ?" U8 _8 p" `" Z/ v3 } LA.python path* r# F. c g3 @7 F
B.path python; ~4 a0 r7 ?# T' h) S
C.which python
2 Q! n! F$ \4 V5 \/ tD.python which" Y; ~+ R4 Q7 @( J$ l! F: x
资料:
& N7 S% R+ W. D4 {6 I. ^ I
- e/ T- ?& d. M e# M4 s9.Python中跳过本次循环应用关键字()
! h3 _& h9 Y, x( N& `% Z, _A.break
: d M! l0 A& \* |, ?B.continue
" C, d# W+ G0 |+ TC.exit% D- }1 p' z* P5 a; d
D.return7 X. G7 P; ]3 L; d* L7 p
资料:4 o1 u: V$ ?: \
# G/ w6 N; Y k) I3 u0 T10.Chrome的开发者工具中哪个选项可以查找到cookies
# c0 [+ l+ j+ R$ v" s4 BA.Elements
! n7 y I/ H; NB.Sources
6 t6 W0 \0 @. H) OC.Network
% h0 H# U! ~* d# S$ T+ y9 q8 E# BD.Peformance: H- w3 L a) v+ x
资料:
# f4 h! F' U: R) G# L4 r" J u; e
, R# n. e$ d q7 k# H/ s; m11.下列哪项不是HTTP的请求类型()
6 y, ^3 E; B8 C; U( YA.GET
6 q' F C8 p' d% M; BB.POST7 w `' Q# U+ t4 Y6 i% O7 g7 J5 b
C.PUT
\8 B! M1 z/ N I0 p; O& YD.SET
4 v- [# ^, ^- p- q+ e资料:
2 T- h- D. l U5 L6 R
6 O1 W" @. J) ~0 Q5 ]% m12.通常使用()工具来模拟浏览器进行爬虫请求
: k2 p6 d. h" J, b" W+ dA.Selenium/ w6 [7 n7 C6 Z7 s8 M2 b
B.Chrome
8 o( I# N+ G6 RC.ChromeDriver3 Z5 a. d8 q3 f0 _! p, ^" R$ Y, k) E
D.WebDriver- k# i/ T; t2 P5 P! O! \" u8 N. F X
资料: W# `8 p( {# T) T2 T9 H: x0 j
) L8 k; e6 z" }& w, Q- F5 N13.chrome默认打开开发者工具的快捷是
: d6 c8 {$ u, |3 sA.F5
+ v/ d6 C( b$ I; nB.F11
2 A2 a& D5 a1 d5 fC.F12
' z9 \/ s" _$ jD.F2: h$ f( N w! E* I8 ^4 K1 N
资料:
! q2 _* W; ?$ z. P3 C& Q m* \5 k" ?& I; a
14.Python中专门用来处理图像的第三方库是
# V6 |" g: K$ n3 p# X( d+ yA.lxml
5 I$ {6 V4 N8 U1 S- C l% @) j; mB.Pillow! `, R; P. X5 Z' g! j" T7 J
C.beautifulsoup4 G# x" m2 @! D' c0 p Y H* E
D.pytesseract
! a0 f K2 z G) v' a资料:
( M* s9 i1 }- n% X5 B0 M6 u5 P. p2 m- V0 @; C2 E, M. P! c1 f
15.要想让Scrapy结合Redis,应该对Scrapy爬虫请求的调度算法进行修改,以下哪种修改不能完成这一任务?()
4 i2 Z. u" f+ o# j2 Z5 XA.队列
& ^6 r0 p$ u. RB.栈* N& b& J) [: D- h# \
C.上锁4 T e4 y5 w$ d% O1 L- A0 B
D.优先级队列" z' W; m5 G; x# \
资料:
G2 ~# h& D4 X/ S; ~' m7 x/ J) I5 P& Y7 Q- h1 s
16.以下表示请求资源重定向的HTTP状态码为5 @3 ^" n# K) t4 g( c
A.200
: ^& d4 T" l, P- S1 ~ C" F" eB.301; n4 N, O2 i; k: l
C.404
1 y7 f9 u5 X! k& K" DD.500
. T' g* ]7 V) ]7 u资料:' H1 n6 i1 q" k, o! d* m
1 r! y+ a$ A: D2 q; g+ ]# q" p
17.请问按哪个键可以打开Chrome自带的开发者工具()
% q: z; v# ^' C. |A.F10$ S, d0 _' _3 g2 x; ^1 l" b: @/ o6 m
B.F1
$ O5 ?8 X, V& G! M% d+ T5 TC.F11
. r* o; O! v$ M5 Z& ?) _$ r( lD.F12
( r+ e4 W# V" v! r资料:- c3 c& \+ e. ]4 \; Y
; [# a+ J$ \# x# }6 m* Z) G18.如果使用Python的数据结构来做类比的话,MongoDB中库相当于一个()5 J, S1 s9 G% C4 d
A.列表3 Z0 k: t3 r! ~1 l
B.元组4 B1 t* B1 [3 U6 O2 d
C.字典
2 E/ f# j* n" X2 s+ R1 r0 r DD.集合
. g- s) ?5 P+ W/ r& }6 f6 s资料:9 {4 I, v: ^ ]" b
# o6 [+ }5 z% q2 B0 z19.执行下面代码,结果为(): name_list = [] if name_list and name_list[100] == '张三': print('OK')2 f j( R0 Q& ~; s( I
A.程序报错
6 Z2 ?" N) T9 W' K9 `4 Q$ m' ~, I" UB.OK& I) v, D% v# d; @# u
C.NULL7 L) E) r/ k5 \# ^" _ |
D.无输出
& G, Z4 m+ l% x2 n2 o/ l资料:8 n3 m5 t+ [$ L& h% j0 w# v
! M+ R0 V/ {1 q \3 u20.使用UI Automatorr判断元素是否存在的操作是得到相应控件后使用命令()4 A/ P! N0 |9 B* x' H5 x
A.exist1 X5 k' k+ I! q4 a
B.exists1 l0 e1 |# c, y' c
C.isnull) {" d( h1 ~4 y4 d- v
D.contains
3 s" O! A6 T6 e3 H+ p7 J( a资料:9 Y0 ]" L4 E6 ]
; |. H4 V1 y& M+ `3 D: `+ W
二、多选题 (共 10 道试题,共 20 分)
6 u* `; r" j+ Q4 G0 T8 Q21.为了解决爬虫代码本身的错误引起的异常,可以采用下列哪些方法
; M6 V, L6 b3 d/ V: J1 ^: w/ O' OA.仔细检查代码9 n! h) a. q9 K+ v: P
B.开发爬虫中间件% j B8 m% P( v# o- u
C.开发下载器中间件% H8 o, w6 U9 \6 @7 l
D.等待
0 _' W [5 P1 ?5 a! t$ L资料:
) K( N: ]& u1 ^0 e& W8 ^2 |' C/ \/ T& F' Q
22.使用BeautifulSoup对象后可以使用()来查找内容: e. f7 @8 v! `
A.find_all
2 o- y/ c. e4 F& v3 UB.find
# H" R( ], f# v0 bC.search
+ Y: A# x/ M! J% u9 A, h; J. ED.search_all
8 `" P' o+ n* k. [6 C* ?: ?7 G3 u# o资料:, ^& K$ y1 x9 y8 g+ u9 [9 l
& M7 F2 D% i& B, e8 _/ L
23.MongoDB中获取名字为set1的集合的语句为()
5 F/ W5 q9 n( U* D5 J4 J/ N5 N/ zA.database.set1; Z& f- e$ W% Q8 ^- e! F, e/ T3 ~
B.database('set1')& {4 I! d) }) O
C.database['set1']
2 D6 L3 D5 ]. e& N2 qD.database{'set1'}
) B/ Q: T7 A; x& u" i$ i资料:C+ l: v+ F. {) r$ `" F
% e5 A7 y5 G7 E! M" H+ L24.以下哪些可以独立成为Python编译器()! J1 A6 Q) @6 ^8 h
A.Pycharm
- A' D7 G) g# a) s3 E; t) EB.IDLE" l* ?- W( E! L( D2 v L2 z
C.Eclipse: m- x& A0 |. d L
D.Visual Studio 2010
: z! T% r3 M- T. J7 i5 d: O/ C( j资料:
2 X) A5 y! H y/ w% l. \- U$ `7 C' S' n7 w+ v
25.使用Selennium获取网页中元素的方法有
7 \! z0 C* T5 F% w* i9 CA.find_element_by_name% F! K: ~3 R* @+ |- U5 N
B.find_element_by_id4 x6 K, J" g* L
C.find_elements_by_name1 p6 K6 M; q. d& K
D.find_elements_by_id9 B/ g- d$ d/ k; d- b2 m
资料:CD
0 w9 ?4 R2 D: }
$ n# B8 n+ r" u: |; |26.下列关于在IOS上配置charles的说法正确的是()
& w; Q* w$ i! s1 lA.不同ios设备之间会有比较大的差别,所以配置的时候需要找到对应的安装证书的入口。( F" ~* A: }) A% B6 Q' r
B.手机和电脑需要在同一个局域网下。
]) Y& |& K `/ CC.HTTP代理可以使用"自动"选项。. y3 t& i8 V9 f, ~6 u
D.安装好证书以后,打开iOS设备上的任何一个App,可以看到Charles中有数据包在流动
+ U/ p7 T' k ~4 _* Z0 o资料:) r0 l; r6 V+ Z/ c, J$ g7 B
5 l9 g0 j+ o; o
27.网络爬虫的用途有()
+ J& u# o4 h- R' N& u0 lA.收集数据3 T/ X3 w! s1 |1 u
B.尽职调查
) o) Y( L9 j& Q0 JC.提高流量* d, p Z. `$ s* O/ S- D) v
D.攻击服务器
$ P* b& C, I1 w1 O( K6 T+ u资料:C
1 H B2 } r7 B5 N1 }$ p1 f4 A' Y8 C o; V Z
28.PyMongo删除操作有()1 f6 K7 w9 J/ W- Q9 s
A.delete
8 i1 a8 s& r+ c, Q' y0 Z5 t! }B.delete_all" D9 l1 v) o! S+ l
C.delete_one
& f" N* U/ F! @' y1 w8 F: YD.delete_many0 D. w" G" @! ], h2 x4 n
资料:
/ C" K+ I: w$ F/ ]% b% C" s% T8 X7 u; `2 }" r+ a- g- S# ~2 p& U' v
29.PyMongo更新操作有()
3 c" w; v" J; z( B& t6 P2 OA.update
7 U% J7 @& s% `B.update_all! G# g) U" B$ k/ c4 m
C.update_one8 |, ?) A6 Q6 j1 S1 ^
D.update_many0 i( k0 @' h' }& a' i
资料:) m7 h, c) @6 @$ Y# c8 p6 o
1 N5 ~7 S6 G' a: f/ \5 G" Z+ Q; {
30.BS4可以用来从()中提取数据
0 N0 Q/ A1 R% e6 D$ i2 U1 CA.HTML
% t# v4 A0 n6 A6 _; p# cB.XML0 c" A% G5 |+ K- x. l7 j
C.数据库
& E. O4 ^9 V+ Y# g, ~* u/ ?D.JSON
5 h' ^$ v6 U& i6 X8 O资料:
! l1 k* U( v f$ J2 @6 c# U5 m# R; f1 h/ c0 U0 N. B+ e; _
三、资料来源:谋学网(www.mouxue.com) (共 20 道试题,共 40 分)
( S! u2 _* A3 b9 U4 [31.在charles中使用CTRL+F搜索,JSON里面的中文是可以直接搜索到的。
& K1 Y5 X4 H% b; F% v" c资料:错误
! r. @. d% Q$ E/ r( q# f3 N
/ I" @, X8 p$ h) m32.使用UI Automatorr操作实体键的命令为device.press.实体按键名称()
3 A1 }5 o3 Z$ J3 B* G' b' ]资料:正确% H- V9 O7 L$ d: r3 q
3 a* o8 R$ S4 |
33.代理中间件的可用代理列表一定要写在settings.py里面
: `6 h6 q" h* _) ], w; y资料:错误
; C( v0 H/ U; R4 x; C- N% H9 R/ b# ]7 }
34.引用中间件时后面的数字代表的是中间件的执行顺序,例如 'AdvanceSpider.middlewares.ProxyMiddleware': 543 中的543
; h. f7 c2 o+ Y7 x6 W# Y7 A* g资料:正确
* p. ?$ ~/ D' R8 i
" z$ m% }, W! u8 t( L% Z35.如果把网络上发送与接收的数据包理解为快递包裹,那么在快递运输的过程中取出查看更改里面的内容,就是类似抓包的过程! r; `) ?3 Z! ^% c
资料:错误
/ N- z# h. |2 j; C" X8 L5 w/ A
2 V L8 A% ]; g1 m1 C# j Y36.对Charles设置代理时,Ip可以设置为127.0.0.1,端口为8888.3 N9 Y* l: v. p. d" f
资料:正确' @/ Q' w% u; z6 k8 a7 \8 v
( b0 R* R! |1 N# `8 C+ V
37.Scrapy每一次发起请求之前都会在这里检查网址是否重复。因此如果确实需要再一次爬取数据,在Redis中把这个Key删除即可。
9 F0 h% D, K) Y( @$ {资料:正确4 l' \) U& I* G( N7 O
8 q# ~7 \: `) c/ }. o- ]
38.使用异步加载技术的网站,被加载的内容可以在源代码中找到4 C" g- y1 l- A
资料:错误
7 _$ h( L9 t) r [ E' X
$ H; `6 s4 X* a# ~39."curl http://爬虫服务器IP地址:6800/cancel.json -d project=工程名 -d job=爬虫JOBID"该命令的作用是启动爬虫) f/ d& z4 Z6 x) X3 z
资料:错误- m4 y; `1 X, E
/ {# a$ }' Y2 \, j9 J" ?4 t40.Redis中使用lrange读取数据后数据也会删除
6 q. r: B7 M/ N+ E8 h: ~6 d% J9 e资料:错误
3 S2 e8 ~2 k0 D$ m' m; v3 S1 s' ~% t0 ?6 z- q: K! k
41.在Ubuntu下若要运行Redis可以使用CMD进入解压以后的文件夹并运行命令redis-server.exe redis.windows.conf启动Redis
' @% b- ]3 I' @! i0 A2 [* x资料:错误
* n) W' L8 S* {4 X9 ?" T4 [% f1 W+ P5 C7 s9 @7 m1 h, T; w) C
42.需要登录的网站一般通过GET请求就可以实现登录。, h$ x0 l, P0 i4 X+ X4 w% ?
资料:错误4 z! C- [$ T( i; P8 ?' g) H/ X- c
( h& n' \/ e0 T# v) w3 ^7 U43.爬虫中间件的激活需要另外写一个文件来进行
, l; T+ P5 s8 [' h资料:错误8 {5 R9 G. j# b2 R+ U
6 A4 E$ y, {- K5 @4 b# {- o' E; x4 H, K5 |44.requests中post请求方法的使用为requests.post('网址', data=data)( Q& d! f; J2 K; I
资料:正确
3 Y; E4 U/ \/ C7 B3 N7 a+ k& o. R0 I' a
45.数据抓包就是中间人爬虫的一个简单应用。所以使用Charles也是一种中间人攻击5 T% h' U8 e2 \
资料:正确
) s. z+ r3 z, T/ c! E( x( B+ L* F( J4 `1 T# V
46.数据在MongoDB中是按照"库(Database)"-"集合(Collections)"-"文档(Document)"的层级关系来存储的。
2 C* v l* j6 J+ G& B9 }# [资料:正确( l- I* S3 U, p
& Q8 |+ R) \1 r0 M# p47.如果目标网站本身就是提供公众查询服务的网站,那么使用爬虫是合法合规的。
- {: L. |3 T" v. d( a6 M& l6 s. D资料:正确5 i5 P- L% S# _; K
# e1 _/ [5 w" L) i. s
48.HTTP状态码中303状态码明确表示客户端应当采用POST方法获取资源
3 ~, Q' x0 i5 N3 U2 [& I' i$ P资料:错误
/ f5 H" u% Z% u
, p. p4 U* L0 d2 J49.MongoDB是一个关系数据库产品8 _, h0 @& M" P) Q9 u, G
资料:错误& a! i+ L. F2 l1 e' J+ ~. i
/ `, I0 ?# w8 v( o* S1 Q
50.HTTP状态码302与307完全同义。$ f+ h5 V, g) F) K4 g, X
资料:正确- Y+ r! c# ?# K+ {9 Z
. A5 S. Z# S' H" a+ L4 Q
5 ~7 \7 M# c) i" `9 ~
/ d; ~0 ~8 @+ X' d7 E+ v
) f% U3 _: T& U6 S7 |/ i: \- ^$ ^5 M( T% U o ^2 T' K
: F/ s" |- o% }$ @4 `+ w3 p- _
& x8 d G* H9 m$ ^, |
. |8 Q! p/ ?+ P1 M6 c2 ]
" e; u7 J0 h* j2 q3 @* I" ]! y6 p. b
( N$ h7 u$ s$ H# t/ b1 C1 F& ?0 g2 q" _& s
% y2 `" x7 I- K7 ^% L3 R |
|