|
22秋学期(高起本1709-1803、全层次1809-2103)《网络爬虫与信息提取》在线作业-00003, n; t. ~# s/ @" {5 | \& M, t
试卷总分:100 得分:100! H d0 R' F5 U
一、单选题 (共 20 道试题,共 40 分)9 b! W; d8 b6 F% T
1.Scrapy自带的待爬队列是()
% `% }6 [; N0 m# V) DA.deque7 A0 {+ |3 | s; ]
B.queue
& Q) ]+ L$ f- t6 _& `% I1 xC.list$ d: e8 o n3 M% y
D.lqueue
9 F2 z7 `' p( j资料:4 a! j) X& C. o# Y5 U2 q9 u% T
, L% j4 G, V( S+ F- E3 L1 r2.Python正则表达式模块的findall方法提取内容包含多个,则返回结果的列表中会包含()
. z! @% f1 R& \A.列表
& b& }: m% d! y5 m ?) C, OB.元组
5 \1 s; V+ {. p6 D' AC.字典
* _+ `) W2 e3 V: l' w/ ND.集合
! P: h% i1 t5 n/ M资料:
4 f$ U7 I; A j# Z- u5 E# A! Y
" z/ D& m$ r( p3.Redis是一个开源的使用()语言编写
$ x- r$ E }, X1 LA.ANSI C& [% V# [' q4 N+ U0 N
B.C++$ y& ], w( s* d7 [8 O& U
C.JAVA- e \- s& x' ~4 p6 }' F" b" m
D.Python
7 a; e. @0 C9 x& Z( E* ^资料:
& `/ o$ q2 M. O& b
8 ?4 F, b( H6 \: F8 b' S4.Python写CSV文件需要哪个方法()
$ Y9 X* W1 i* v8 kA.CSVWriter
+ Q" G' Z& d# ]4 k1 o7 r- tB.CsvWriter
F8 I4 Q+ x: y8 f, l& m DC.DictWriter( s7 q8 c5 w" g' {6 H
D.FileWriter) _7 {: ~* b2 |! V. Z! F
资料:
" O; X, X* G" S6 C5 F# s
( {) w& d4 b, A5.使用Xpath构造属性值包含相同字符串的路径采用()方法
" J v4 Y6 q) o9 B" |A.contain" K8 s: v; `6 R. t% j* q& U
B.contains' e v' h5 |* Q$ n4 D
C.include9 U: r0 R3 t }% K* L
D.includes
* b/ z0 {" `# x" k3 t, a! e资料:' b- d }% m- A. L2 l7 n" q
1 G' W% x8 n6 S# Y4 y+ S
6.以下关于Charles的说法正确的是( )
]6 r- u. ?/ C2 o! u2 L% DA.Charles是一个跨平台的HTTP抓包工具,可以截取HTTP或者HTTPS请求的数据包
7 i3 k1 a `. g' r/ F, |* ]B.Charles有Windows 32/64版和Linux 64 版,但是目前还没有对Mac OS进行有效的支持。
( }5 A: @0 ^& }9 |2 v- q2 qC.Charles上面滚动的数据就是目前计算机发起的数据包。单击工具栏上面的黄色笤帚图标,可以清停止抓包。$ ~" |9 d+ r0 U) v1 f
D.在Charles启动时,系统自带浏览器的部分HTTP流量不会经过Charles。& p7 I& G4 ~6 {4 j3 F' D+ c1 P- S
资料:
+ x7 D) \" v; l7 S
3 y0 f @+ r( K2 E7.Redis中写数据到列表中,使用关键字()
8 u% T- u9 e+ X0 ~8 c- {A.push' [ w# T" w' G) a3 s" s* i
B.append
, }0 C/ t7 M+ ?9 t+ w# T# iC.lpush
. _) J0 J5 z9 F/ g g& P- j) ND.lappend6 A7 Z& h" P* w1 Q& _# k
资料:3 b) t1 s; N5 S5 W
2 p) g# Q% u5 W) S$ u6 E. }
8.打开终端,输入(),屏幕上会出现Python的路径
6 M' @5 G: U3 B, [4 ^' Y0 EA.python path
& v, |1 t% b9 n: UB.path python6 C! d- v; H! U8 v- s! r
C.which python
+ B! R9 B6 ?! A1 VD.python which9 k/ S: u7 m/ y! s n% P8 q: N
资料:
4 r" b2 M( h. g- N
/ Y! }% e: E& H( R9.Python中跳过本次循环应用关键字()
' ]4 T& l3 k4 a$ ?5 p+ NA.break. L* V8 l9 K/ n3 v
B.continue4 N# G4 f+ t" X! S, _0 e
C.exit
* S" B$ R& ^) n+ b: U* OD.return! [ x+ n" ]6 o u6 {
资料:( z: @3 h, Y9 x
) C" B! @: x* g, s: l. D& \
10.Chrome的开发者工具中哪个选项可以查找到cookies
3 B& w8 F9 r0 v. J, kA.Elements
# F2 \8 {1 e( A- A4 jB.Sources9 v, F7 q$ E& ]1 ^) n
C.Network
3 V; o& N" q1 ^7 [) Z7 b& wD.Peformance
7 n3 E# T5 m/ V0 U u/ B' y h资料:' N1 m5 j5 j- @& k1 v( u* M
: U* z5 |" n- A$ x2 J11.下列哪项不是HTTP的请求类型()" X1 ?4 b& h X$ v' N, X2 n- H0 L
A.GET# w" T2 d! [6 g9 g: Z
B.POST
" `4 t1 `8 z* {) `C.PUT: ^0 h! |, T( P
D.SET' i6 @$ x1 K6 O& s0 G1 A; U
资料:, m, J% o' J) _4 T+ ?: B
O1 ` C" g$ H! o/ O
12.通常使用()工具来模拟浏览器进行爬虫请求# r, X; j$ {0 ~
A.Selenium
* J/ N$ Y6 Y+ s" u. n D3 @# uB.Chrome. o, B: b! g3 j& C
C.ChromeDriver( t {/ v$ Y+ j! ^8 [! T/ A0 }2 F
D.WebDriver6 s( ?# Y- ]) `5 |7 c
资料:' |3 v% v% j& _8 [
3 m- X2 A, X7 _5 u6 T% D13.chrome默认打开开发者工具的快捷是
( E* Y3 n2 t) b. p! ^+ WA.F5
N8 P D$ T. a) Q- P0 fB.F11
1 R; U$ Q) m( D6 W) q( A9 I ~) bC.F12
) O, Y, ]; w) x6 N- e* pD.F2
; B( h2 j: |! g+ y; c! i资料:9 s/ ` T. C& ?' K: T; R7 r
! {5 G% D& f5 E+ P14.Python中专门用来处理图像的第三方库是) t6 b3 M, n6 P& `" z1 c
A.lxml
$ S" i9 c' }" Q4 o5 EB.Pillow
4 j9 \& P4 h% q; Q$ W+ c }% ~C.beautifulsoup9 C2 V |) \) ?* e3 X$ g
D.pytesseract r) F, P& ?+ f: r. w' n
资料:
- m) s0 a) S+ E5 ]) Q# u e2 ~/ R4 S8 r1 L
15.要想让Scrapy结合Redis,应该对Scrapy爬虫请求的调度算法进行修改,以下哪种修改不能完成这一任务?()% z4 p7 Q* ?( V
A.队列1 T$ _" j8 x) Y) h4 {
B.栈
; I- N- o; u+ z1 G) j/ i5 }) XC.上锁
' }5 S0 E( A1 w& z4 Y) f0 p( uD.优先级队列
# [. A8 h2 D7 J4 j资料:/ @9 y6 ]6 M/ a" r$ ^
& [* x3 O5 n' U
16.以下表示请求资源重定向的HTTP状态码为
! G) w* P0 l, B6 ?5 xA.200+ |$ d4 K* l6 ~8 R4 r
B.301
- C, G/ s6 t m7 IC.404
4 ?! Z0 Y3 |, z( [& k/ w5 I1 zD.5000 a/ ^* {" R& C2 n; v' R7 g
资料:
; e' `# {, r- k1 Y5 ]
. Y/ v2 y5 L: X. a17.请问按哪个键可以打开Chrome自带的开发者工具()
. Q; B9 J* ~: d& F# O$ W% |$ OA.F10
0 F8 n$ D) l; Y# W7 s: xB.F1/ F' @5 f& u. n
C.F11
# G. \, {+ B/ |5 a; d# iD.F12
' [; h9 Z0 H P$ ?+ D8 C1 L- t9 E( v% o资料:0 J, H) |" n! A5 h, k# H2 I
a; {6 ^9 s; T, d18.如果使用Python的数据结构来做类比的话,MongoDB中库相当于一个()
2 v" j/ }1 _3 b" OA.列表. |8 f; }/ V* F {' n; h: ] {
B.元组
9 F* J0 U7 F+ V- P# YC.字典
1 Q& d! }' D, QD.集合
9 O% S2 O/ j9 h6 q6 G+ B3 i资料:% j" }5 x! \( G& ?
$ V" H7 ?* f# ]# F: e# ^' J19.执行下面代码,结果为(): name_list = [] if name_list and name_list[100] == '张三': print('OK')6 A7 s# j( ^) D. L
A.程序报错9 h' F1 |2 Q" w: ?
B.OK
1 ^" _8 l7 {6 GC.NULL
$ R) Z* @9 ]3 T3 fD.无输出. ~) o2 ?( l3 c x
资料:1 y- |% B: I8 P1 z8 r
# w% U! u" U/ p5 b
20.使用UI Automatorr判断元素是否存在的操作是得到相应控件后使用命令()) r! D+ O$ E6 Y! X: L
A.exist
# ~* c( F& j9 U9 BB.exists
, B9 b& g& X- \ |+ g! vC.isnull' x9 [3 h8 Q6 u. B0 [# h
D.contains4 L) G8 W2 u4 C( h2 F% }
资料:+ p, b" u; N7 ^1 A, X
7 p3 z/ L+ X2 q! w. X6 l2 {. T二、多选题 (共 10 道试题,共 20 分)7 P/ K: T& F, `3 ?* P; G
21.为了解决爬虫代码本身的错误引起的异常,可以采用下列哪些方法
6 r3 P" l( c" N9 g9 v. A" @A.仔细检查代码* ?6 c. ?( b0 d' _' t6 A- @4 w- G
B.开发爬虫中间件, r7 U7 a+ g+ o( e- u- [% D
C.开发下载器中间件
1 W6 L, Z( L0 P# r2 r5 v, gD.等待
) _+ l4 c3 H# V/ w) n5 S6 b资料:
8 s$ z) ]7 a, A* L( h2 ]
* u- A: f9 e! \6 p$ l9 C22.使用BeautifulSoup对象后可以使用()来查找内容6 J' V/ L4 f& h1 y: \6 _8 c
A.find_all. p9 @6 W8 Q$ z4 Z% b+ h8 U$ I
B.find
' G6 u5 `1 ~9 Q& AC.search
! g6 V, K) b* F _# ND.search_all
3 [' j( n6 t: W8 O2 R1 l7 |资料:
b: Y) r1 T, [$ X0 }6 W/ t' C C4 V$ Q! h6 _" B6 e
23.MongoDB中获取名字为set1的集合的语句为()1 E0 L2 J4 a6 o4 A! @
A.database.set1
( L6 O1 Z& ? I( uB.database('set1'). S3 ^: A1 {2 x+ r" Y0 D
C.database['set1']
, }8 A2 B, Z7 o7 y0 _# bD.database{'set1'}
; o: H4 x3 m* R资料:C
- h* t# h7 K* k' [$ G( \7 Y8 w: {' R5 D' l( @( ]2 B
24.以下哪些可以独立成为Python编译器()
) U K, p2 ^" @% |/ w5 j: F4 hA.Pycharm! g* ~$ P3 S8 ~9 D1 y$ B. Q
B.IDLE3 i1 p h" w, k' U) T
C.Eclipse) b8 _+ r) q2 P
D.Visual Studio 20101 l" l3 S6 l( {: U z9 T
资料:
0 d8 j9 H! s% J- K5 N
/ W5 D" y) k5 q2 m- W) i25.使用Selennium获取网页中元素的方法有/ F2 w7 C+ Q5 u5 f
A.find_element_by_name/ L- S" v3 k0 i" W5 X3 {, L) W
B.find_element_by_id: _* p; Q) d4 D" V0 @
C.find_elements_by_name1 n7 |7 O4 F: ?
D.find_elements_by_id
3 m. t) ^4 ?6 U资料:CD
% X1 M3 i1 S/ I6 c& D H6 O0 f; b7 N
26.下列关于在IOS上配置charles的说法正确的是()
( l& A+ M+ M, J! |/ O7 oA.不同ios设备之间会有比较大的差别,所以配置的时候需要找到对应的安装证书的入口。
( y7 u2 C6 |# n" NB.手机和电脑需要在同一个局域网下。
4 P' D9 x2 ?7 J3 zC.HTTP代理可以使用"自动"选项。
. q3 D0 c/ b6 S$ D* p1 HD.安装好证书以后,打开iOS设备上的任何一个App,可以看到Charles中有数据包在流动- D: O: H! q1 c" t9 }4 r
资料:
$ R/ _2 [% e2 @0 G! t8 v; |" `( z- [% x! R6 s
27.网络爬虫的用途有()5 y! u" I& ~( m. U: p
A.收集数据4 o( f8 K0 v& a& {, ~
B.尽职调查' V0 ]7 l% U/ \: V& Y0 S8 @
C.提高流量% o: p" Q2 n- E8 Q
D.攻击服务器$ O' e3 p/ u! c; E# W) ]
资料:C
. I5 n( Y* J5 W* G/ Y. r
1 Z' [% i- G4 c5 w* {28.PyMongo删除操作有()
4 z' o |+ r5 _5 Y2 D6 |$ wA.delete
, E; b( O8 J+ G8 M. ~' H7 hB.delete_all
8 h( @- i6 L0 w" e8 y$ FC.delete_one
: Y/ M, s3 o Y3 g% j0 P1 XD.delete_many
1 d, P/ X" m8 O. i资料:) z7 _7 h, b: s- n/ V
+ m: P# `' K3 i9 e( A" w29.PyMongo更新操作有(), X( c6 U" C# x% W
A.update
$ T% _4 m, f$ n8 w' yB.update_all- n D- Q9 k- M0 O
C.update_one
0 S+ t* t4 ~# a/ b' G4 l7 Z5 N5 RD.update_many$ v* m: L9 Z3 [5 r$ ]
资料:
: S9 p+ ]4 }0 ?: G4 `6 w& Z" ?; l
) D8 [: l; S' s. R$ F* M( a. V30.BS4可以用来从()中提取数据& O. }. s5 a! Y* j; S1 [
A.HTML
# c& S/ }5 R# AB.XML1 e7 S+ J* B5 Q* k
C.数据库
$ N% P7 `; G4 [D.JSON
5 k4 M( e" G# W$ F资料:* E. \- t3 W/ J/ ^( ?
5 y( u! O% y" ?) K" R5 c
三、资料来源:谋学网(www.mouxue.com) (共 20 道试题,共 40 分)8 _: u6 @% j3 V, L) b& {
31.在charles中使用CTRL+F搜索,JSON里面的中文是可以直接搜索到的。
8 V7 W# A, A% k( s0 Y' A资料:错误
- s# z4 c. Q8 q7 }7 Q* u- }; X) f5 y
9 A, w' t) w9 g; S" ?- T32.使用UI Automatorr操作实体键的命令为device.press.实体按键名称()
. f; X) e P. q" g O资料:正确
! M9 g6 G* r1 l" Y' [/ p4 [% I; t' \ P. L- E2 K( q* h
33.代理中间件的可用代理列表一定要写在settings.py里面, d3 z! ~# X, Z/ W' j
资料:错误
; z6 ?8 n/ J7 o" R
, z5 |+ x/ O w+ \, j2 v! G% ^34.引用中间件时后面的数字代表的是中间件的执行顺序,例如 'AdvanceSpider.middlewares.ProxyMiddleware': 543 中的543- B& F4 r$ E- D
资料:正确 v1 J u" ^7 q% K( ]2 [
8 b8 b7 D: O2 {; H0 ~+ Z35.如果把网络上发送与接收的数据包理解为快递包裹,那么在快递运输的过程中取出查看更改里面的内容,就是类似抓包的过程( H# _& }4 T( s \$ e$ V0 ^- c
资料:错误
) o7 H$ p: j j! f8 T' [) ] N9 E0 L/ I9 b
36.对Charles设置代理时,Ip可以设置为127.0.0.1,端口为8888., h3 I9 v a8 c8 U( q. v
资料:正确
1 {3 n( m" z+ |3 N% X5 {6 L: i# l V* Y5 H) Z. @: L* g" }: i
37.Scrapy每一次发起请求之前都会在这里检查网址是否重复。因此如果确实需要再一次爬取数据,在Redis中把这个Key删除即可。
* a4 G9 o1 e" w% M# Q2 a资料:正确
+ M- E+ p8 d1 J, Z" u3 x, n ~, F _1 Q: Z; y1 u* f
38.使用异步加载技术的网站,被加载的内容可以在源代码中找到
, o6 I2 G/ q( A1 c0 U资料:错误
" Z% r$ k2 b8 C/ J' o/ s n0 w! |( P: |& h! Y3 G
39."curl http://爬虫服务器IP地址:6800/cancel.json -d project=工程名 -d job=爬虫JOBID"该命令的作用是启动爬虫) y0 \# ^# U4 q, z1 H0 h, ?
资料:错误
3 K3 H* D0 m2 v4 Z# I; D3 F1 i* |; L' n* X1 a
40.Redis中使用lrange读取数据后数据也会删除% }: P* x0 `: C" i$ F5 G/ A
资料:错误" P: w8 B2 V0 E( g+ U- ~
; _0 J3 m/ u2 Y% L3 Z; I5 R41.在Ubuntu下若要运行Redis可以使用CMD进入解压以后的文件夹并运行命令redis-server.exe redis.windows.conf启动Redis: f2 {5 U0 t# w
资料:错误
; B; B- H a1 O, b. j6 \9 a5 C* J- g2 N G& ?2 }* m7 w8 K
42.需要登录的网站一般通过GET请求就可以实现登录。2 @. b+ V% O. t! J
资料:错误$ E, y# Y6 s o
8 l. a! o5 w( ^7 e6 i
43.爬虫中间件的激活需要另外写一个文件来进行: {: w- g, m! F" K0 h
资料:错误
2 o- `( h" R& F+ y' k& S
8 q2 r+ j, U1 N4 U! i7 T44.requests中post请求方法的使用为requests.post('网址', data=data)
& r0 f" S; Q0 S; W3 {: S3 j资料:正确
5 J6 f) v6 ?$ ?4 C8 |* l+ f2 I2 r, }3 L3 Y, Z! X
45.数据抓包就是中间人爬虫的一个简单应用。所以使用Charles也是一种中间人攻击
: s; H/ ]! `2 q/ i) m, c; J资料:正确
- V1 F; C; J7 a1 l8 L" O4 H0 U
- }& r6 C2 I) I' n46.数据在MongoDB中是按照"库(Database)"-"集合(Collections)"-"文档(Document)"的层级关系来存储的。
& Z; [3 w; `( s2 |# c6 L3 x资料:正确
. ?4 w! a8 v8 r9 _% L* @0 [$ ]$ J0 j. N6 X/ }' ?+ c+ \) j3 k; N. L
47.如果目标网站本身就是提供公众查询服务的网站,那么使用爬虫是合法合规的。1 ]9 Z8 @4 {; m/ I0 H, ^0 t
资料:正确( @! A9 J* u# {) m7 m7 `
9 z+ H. T' d" p1 {
48.HTTP状态码中303状态码明确表示客户端应当采用POST方法获取资源+ A$ W. J# }2 ?0 E
资料:错误
5 F4 R0 h: N* H, c7 q( F& J# }+ d2 K# W5 t- N0 ~$ `8 f
49.MongoDB是一个关系数据库产品: ~* {- w' @3 ?3 ]: }9 p0 u8 w
资料:错误+ D) O/ m. p+ y4 n- c" |1 V1 w) o
8 O6 F3 ]) d' s" _, A2 {50.HTTP状态码302与307完全同义。9 X$ i& f v, n- _
资料:正确
: w# J T3 [- _9 k* q8 H/ ?3 o
! ~) H: S' \9 b1 {) b s/ v5 W; Z/ O. G; X6 } K O" w
: B* ]2 `8 ^% f- p8 `# I- m3 m3 Y
+ b5 V" t! S+ O( V2 }. E6 s+ A
( X$ L) `, [) d f- U' Q6 t, { O/ ^
0 A* q! q3 H7 D0 V v6 Z6 ?, I1 c5 c
" M; i' ~( w: Z2 T( G) H
, Q$ F$ s) n% L! t2 a* ]" T& S+ s1 V/ e Z
% M3 r1 h+ P. }* G: \
|
|