|
22春学期(高起本1709-1803、全层次1809-2103)《网络爬虫与信息提取》在线作业-00001
+ I% p% }2 J, {$ I5 ?试卷总分:100 得分:1004 C3 v- U: K& t. }
一、单选题 (共 20 道试题,共 40 分)
% L6 m# a; j, R1.如果使用Python的数据结构来做类比的话,MongoDB中库相当于一个大字典,大字典里面的每一个键值对都对应了一个集合,Key为(),Value就是一个集合。+ m% R) B5 j- j- H/ Q
A.字典
$ \/ V1 L3 g& x9 e- ]) \/ uB.集合的名字, v% ?) P8 ?8 _4 Z' }9 \
C.集合) ]6 b7 U! a: H
D.文档
% T9 l+ l' ~+ P资料:) v' N4 E1 W9 Q; L' c( G! H
. H2 u1 }: s8 g2.Redis若要进入交互环境,需要打开终端输入()
) I# P' y- O, IA.redis-cli( o2 s" Z N) e) }# r
B.redis
! C: v# R+ a% m0 }. Y3 ]1 OC.redis-cmd
% a8 \) b$ _. ^1 S# wD.redis-start
! d$ C. A! }8 {资料:
* f# v" k) v3 ^' j6 u. B2 Z4 L. l- d! i5 V- k4 x/ J9 I
3.xpath中extract方法返回值类型是()* q, A& {' \$ g) x. O/ ~- E# O
A.列表8 ]# c) J! m x7 H0 b
B.元组
0 [2 J+ r- K: ^8 a4 h+ e, M1 _C.字典* E" P$ {$ [8 P5 k
D.集合2 Y: t" y; L _9 [
资料:
6 W) c% K4 t. ~& B* \/ C
3 R+ \) |) M+ \7 ^# ?4.Scrapy自带的待爬队列是()
8 F# X3 w& s5 c: E% d! R' QA.deque
- n/ U* s0 L$ |: HB.queue
* y8 H4 o1 D1 s) L; xC.list
. s9 o; @* i+ `$ |3 B' QD.lqueue
+ Y$ M, ?! y& s1 V0 s资料:
: [6 e/ M/ J/ Y# W) M$ L3 h- x/ U P/ ^$ G5 e, S( w" T, |4 w
5.请问按哪个键可以打开Chrome自带的开发者工具()
. k1 s/ M- w. ?6 s) iA.F10
9 A! u7 \9 U# @" C/ sB.F1
2 K- f) q! S% ]" R3 J$ h7 TC.F11
5 H- g: N( k! O9 t1 x4 GD.F12
: n; y n* s0 x资料:! p9 `- X* c) Y+ j# n
$ I" T8 V: A. R# q6 s9 P
6.服务器端记录信息确定用户身份的数据是" y% Z f2 E* ^. y( c5 e& p
A.session
8 ~0 X- m0 a" _* A) h' M. h2 P( \B.cookies
' O/ D2 M+ I5 N# ^# F5 ~C.moonpies
& Q! p4 g% a4 b! P( aD.localstorage
4 k3 ~) F, l2 g! s& d资料:
% n& P: c! G, Z
: a' L* \/ x& A/ {, S7.以下关于Charles的说法正确的是( )0 X1 x+ j8 }9 W: }
A.Charles是一个跨平台的HTTP抓包工具,可以截取HTTP或者HTTPS请求的数据包4 T# N% \" y& d' s5 P( U
B.Charles有Windows 32/64版和Linux 64 版,但是目前还没有对Mac OS进行有效的支持。2 y0 h/ ~3 h% C, y- p6 P& I. d
C.Charles上面滚动的数据就是目前计算机发起的数据包。单击工具栏上面的黄色笤帚图标,可以清停止抓包。
+ x) n3 J* p. W9 S/ iD.在Charles启动时,系统自带浏览器的部分HTTP流量不会经过Charles。- t& O8 b# _5 n
资料:
7 g2 o8 r! A- N/ x6 I- ]% s# C- |2 L
8.MongoDB中数据存储的形式类似于()/ l% D: M/ Y, l1 @; ~
A.列表% z& K) I' R Q. C; i: \
B.元组
) {6 K+ r5 s5 [) F8 {6 t) o d8 W3 \C.字典
8 I" @3 z& z7 c) t6 @/ VD.集合9 Y: ~5 [7 b+ g0 ^. z
资料:; o0 s' ]6 _: [6 A
8 W/ r0 W3 m$ E3 i$ g$ g+ k! U9.一般来说在页面传输登录信息都用HTTP()请求类型
7 {0 ?% ]# A7 _% hA.GET
j. S' [( \( P- v* j3 EB.POST) k ]/ H! f. }! N
C.PUT
; @& t5 S- w+ F) G& ND.SEND
% x$ Y, U& G- x( N) r资料:
3 }, v% c6 X# o
- S; B7 Z2 _. D1 m" P7 h10.使用了RedisSpider作为爬虫的父类以后,爬虫会直接监控()中的数据,并不读取start_urls中的数据。8 b5 n* e7 b( Y& Y* Q
A.Redis
: B# u: E3 N: w" {3 G4 ~. UB.RedisSpider
* N2 ^# D' b7 V2 W, wC.Spider
1 V% @& S$ z, B) {* G L- {D.MongoDB
. a- c# J% r0 A1 m资料:- n/ P5 F% l" O7 g
1 k; T# G! R' K11.当需要把Python里面的数据发送给网页时,需要先转换成()字符串
5 ?) I9 \, D; B: {; DA.Python$ u7 [ P5 Q- }' t! p3 H
B.Json* h( v0 ^- Y- _3 N
C.正则表达式
1 n; A' ~3 e3 S4 s. n! tD.Ajax
6 C, [: a+ z+ D- U2 ^, y* q9 s资料:
+ c# G) Z4 _4 N
, h9 |5 h1 X# R8 Z( u. N) Z2 m' C12.lxml库中etree模块的()方法把Selector对象转换为bytes型的源代码数据
- g E1 E& S- B; rA.etree.tostring
# L" x+ H d; u3 B0 |! M7 i* [B.etree.convertBytes
! b: g5 l7 f' T, Y. vC.etree.toBytes! I# i0 x8 ~' C
D.etree.convertstring( w( i& p7 ~6 |$ q) G. R. D7 b
资料:7 o0 g+ W5 g5 W/ L* H5 V& o5 {6 C
g+ E) _+ \: }
13.Python中以下哪个容器里的元素不能重复()% z) @/ P, v' d, T+ A6 |2 ^
A.列表
4 L) U, c) Q% W7 K! G# ^) t& x) pB.元组- P/ B% R$ A/ v4 |
C.字典
1 ^! P' h4 K9 l `6 KD.集合/ y, n; ?$ E% j2 u4 b* F6 b' F4 X
资料:2 l& B" d4 F8 K% i9 ?2 |( D9 l0 A
& l; R1 ?- Y) k
14.通常使用()工具来模拟浏览器进行爬虫请求
2 O/ \% W& c4 d6 [7 lA.Selenium( K" ~5 W8 u, g9 |% f, p
B.Chrome" a7 ^0 v& n( ]& q& R) T
C.ChromeDriver
- l+ {; O' ~* g4 o5 ]" G3 cD.WebDriver7 x% Z8 X+ K2 D9 c4 y
资料:) @! A5 X8 C; q
7 b. }) ?* j6 t; f1 A
15.下面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)))2 x0 _8 v9 F( X+ H7 p, K8 j
A.第一步:[100] 第二步:[100,50]
E! _& B( m1 e, K' o2 EB.第一步:[100] 第二步:[50], b; y. M; {/ O7 u
C.第一步:[100] 第二步:[]
6 f( @" [5 j% [" c, G: xD.第一步:[100] 第二步:[100]
* ^, S1 S8 |9 s/ b% H* V5 g资料:+ n0 f" I6 L. Q0 z4 R1 A: r
/ Q8 r' X$ {- |9 W6 g* t
16.Python中若定义object=[1, 2, 3, 4, 5],则print(object[:3])输出()
1 F. j' |" V' eA.12
& w' [% m" c! W8 k$ Y3 wB.1237 \; V5 ^! |) w9 u/ h$ [0 N
C.23
- F' E$ @9 g8 T: o- yD.234+ y9 }; P7 a/ B. v5 j
资料:
2 Z4 N \( f8 V' Y" S& A% Q0 f
8 o: a$ T. H( m; l8 Z17.使用Xpath构造属性值包含相同字符串的路径采用()方法
- p5 H0 Y1 b3 o% b/ R: z1 WA.contain
( I4 E) m8 [ q7 [$ yB.contains
* R& |; P [* i/ `1 ^1 q1 NC.include
, a! [2 h% G. }D.includes7 n! W0 ~; i( m. {3 Y( ~# N
资料:- x$ @3 S* e# ^! x/ D4 t7 W/ {
& E& J& x2 W8 z! v18.使用UI Automatorr长按点击的操作是得到相应控件后使用命令()3 N9 ^7 Y5 ~$ O; t
A.longclick
7 ` m4 Y( M R9 PB.long_click
1 a3 c9 ?' b! J) U& K6 j' n& X& PC.clicklong( ]0 a5 Y9 F2 F8 ?& e. p
D.click_long
( t! O, ~; o$ p资料:# m' Q$ P% a4 B3 d
9 E- P9 K$ U) M( [) _
19.HTTP常用状态码表明服务器上没有请求的资源的是()
! c ?1 I* Z2 K' PA.5000 {) Q3 }7 [$ I0 c) V
B.5032 k" o2 M- y! y. x- N
C.403
+ K l# T' Y; {; }! F/ }, b) _2 \' }# ~# wD.404( }7 f4 b( x% G
资料:
# \5 s: \5 U7 i& T/ P! y) k- m8 ]! a
20.Scrapy_redis是Scrapy的"()",它已经封装了使用Scrapy操作Redis的各个方法
( a3 Z; S# C6 U% d4 D/ X& jA.组件
3 `; ^* s$ M; G8 j' AB.模块% Q1 g7 A" d! _; Z6 K( m
C.控件
! P. X+ U1 q: B* a' P+ C/ j& fD.单元5 E7 C0 [4 K* ^4 m
资料:
& B* |8 J; `0 r. V& ~# S
: R4 K% J! Z" a二、多选题 (共 10 道试题,共 20 分)
% y: D0 x. ]! x- S }0 v8 B6 g21.Python中有哪些实现多线程方法()) _' q9 `& C. S
A.multiprocess.dummy3 j n# ^9 N; J' _8 L0 c h' `
B.threading.Thread% I& z/ q6 ]' q$ w
C.process
5 E, u5 g4 M0 A; G. h* I# u- iD.PyMongoDB
' v2 I* x- q5 x- e* w4 h" R资料:B
4 h. c) ^ f. d+ l/ Y5 s- m5 ?" I/ e( S4 r4 _ X0 ]! V$ ?
22.最常见的HTTP请求类型有()* J: I4 I; N# q6 i
A.GET
: B& @0 M5 M2 o$ A1 j3 lB.POST
1 Y" y8 J! H U" E# JC.SEND# K. V8 c0 A. U# t0 d. A' o
D.RECEIVE; q& w7 j! U2 N3 u
资料:B
) z% q4 r! j3 [$ w3 v& r' k0 I. n8 q
23.Redis中的值可以支持()8 J% g/ v2 E$ _6 c/ @2 R% w
A.列表
4 X6 i, M9 l8 e% J; G$ T" ?B.哈希% L) z! E# Q2 Y+ x
C.集合8 h- I' R V* p) \- E1 j+ g6 N3 d
D.有序集合8 T( F6 k# `8 \# _& n: @
资料:BCD
8 x! R# t7 x! u9 `8 U+ R; Z; A( S, Z$ J! g9 [
24.常用的会话跟踪技术是2 F8 A" E' {- A. P
A.session" O, u+ g I$ _5 }2 I8 @4 M
B.cookies
, X" s% Z; @" c+ L. O& _C.moonpies
; V4 q+ A' C+ x- I: |1 B3 UD.localstorage
0 Z6 u* B3 M) T6 r% p资料:B
/ _( }1 C/ A9 w. `1 W# ^5 S3 L
4 e( ]) u$ E/ h3 U, z25.以下哪种方法是MongoDB的查找方法()+ r; Q5 O2 ~: B O2 b- J
A.find
4 _4 L5 M6 K/ m! K; t) ?! VB.find_one5 M' t5 T$ ?1 H
C.finds
' Z |" J, E n' l) X1 J, GD.find_all
/ |# O0 w" X) d) x7 k+ g% F9 ~9 D资料:B+ ?. N# x4 r+ P% ?
) Y3 _. R; G& o# I4 O+ j# w- n
26.针对解析源代码的BeautifulSoup对象,构造时BeautifulSoup(网页源代码, '解析器')中的解析器可以为()
5 i3 M( i+ |6 M& J) h; G3 e' KA.html
7 w# |( n6 L$ X" m( dB.html.parser
# Z* G1 {1 _. ~9 w6 K. KC.lxml
( m& g' A# d X6 |1 _, ?& ]D.xml
/ T4 ^$ Z( m4 Y9 v9 d# A3 B资料:" g! ?: a' X5 R) G) ~% `
2 y# z4 G2 `( ^6 F. A
27.Python中一个函数可以有()个return语句9 q( a. d' n3 m* n6 N8 _2 \* b6 E) {
A.0( c3 O+ w4 ^. H
B.1
2 c% J5 S6 ^$ M) rC.多个
* [$ K$ @& q+ m& A4 HD.2
9 N: p/ U- c- p! u+ @资料:BCD
$ x$ _& }; [. ^! r9 _. X2 w" X z/ f4 i9 ?- x9 v4 u! v
28.Python中的容器有(): P* k) K( b' J; X1 n S
A.列表# D% |) _1 g7 t8 D1 Z
B.元组
5 f% a" g* q. Q/ s9 ], h* bC.字典& u2 t* D }- I% Y
D.集合- a; i" X# J, _- {" q5 p
资料:BCD, L: h1 j$ d- ]& O
5 ^) C* L. F- d3 J& S
29.Python中一个函数没有返回值则可以写()
% A" g9 S L6 G; \A.没有return
* q. E. p/ O' y/ K. FB.return' R: `7 J: m% e# e8 E( c0 z
C.return None* W) Q" Y2 S+ X4 N& h- v8 d7 t3 D
D.return NULL
; j8 q' k0 S% w: v" s& g. \* | B资料:BC
( f9 C3 H6 s7 E' J. @, @& V9 q* n' y7 B! q3 F% P/ Q
30.下列关于在IOS上配置charles的说法正确的是()
" y# O% A( F; e6 ?* u" rA.不同ios设备之间会有比较大的差别,所以配置的时候需要找到对应的安装证书的入口。 Z& B5 k* ~# Y: N
B.手机和电脑需要在同一个局域网下。
; w. e8 X" S% c* yC.HTTP代理可以使用"自动"选项。
( K0 n0 S/ M( [" pD.安装好证书以后,打开iOS设备上的任何一个App,可以看到Charles中有数据包在流动6 q$ b" {% P {, h0 X" g, Q! ?
资料:
( m9 J! y, i- d& j1 p" t) L5 v$ m0 _. t9 R3 O$ _3 n% k$ }
三、资料来源:谋学网(www.mouxue.com) (共 20 道试题,共 40 分)
$ H/ }0 ^1 @8 A5 J( R2 J: m+ H# p% y31.Python中使用下面代码打开文件也需要对文件进行close关闭操作 with open('文件路径', '文件操作方式', encoding='utf-8') as f
) Y% l* ?. | m, S2 j- S资料:错误) G- L( @- i3 M" k- @5 T, [' L# [
. b, W) f* ], [7 \2 I( N5 I
32.在charles中使用CTRL+F搜索,JSON里面的中文是可以直接搜索到的。' Z7 S; X' `' e# e( z- Y
资料:错误
: y- ?: W+ b6 o6 S+ x; q1 e
{3 [# L4 \' [) K+ E: [33.Scrapy每一次发起请求之前都会在这里检查网址是否重复。因此如果确实需要再一次爬取数据,在Redis中把这个Key删除即可。; \0 A) j6 n' W/ I
资料:正确
2 t- Q- f; d( r
, t( t( E7 N' u4 \4 v# i8 y34.插入数据时,MongoDB会自动添加一列"_id",也就是自增ID,每次自动加1/ M1 a2 \2 c8 x" S6 |7 K# c! y1 H) o
资料:错误9 S0 Z' u- w7 e" D; j/ y v; P
U% @# L; l. k35.Python正则表达式中".*"是贪婪模式,获取最长的满足条件的字符串。3 P z* p8 T' B/ ?8 N, l1 E
资料:正确
+ Q9 B( l1 n# f3 _6 K+ C
9 K# V! ~3 \4 T% H: [' r36.使用Scrapyd,可以实现一键部署Scrapy爬虫,访问一个网址就启动/停止爬虫
! q1 `; M; c6 Z( P! o$ [; z) m; s资料:正确; x7 ^- s+ l: u
7 r0 D! P9 T( _ _7 F37.Python中元组生成以后还可以往里面继续添加数据,也可以从里面删除数据;3 w% `6 N+ ]2 D" h- z+ W
资料:错误, u% }, ]; d' L
' Z5 ]0 D4 z! _' T% ]9 q# u
38.如果目标网站本身就是提供公众查询服务的网站,那么使用爬虫是合法合规的。7 Z# S" ^2 A$ Z
资料:正确
8 Q& W, v. A+ A1 w$ @0 a2 R6 Q6 |8 M9 d* P- R6 Q2 y
39.HTTP状态码302与307完全同义。$ l; |9 C' `7 B7 P% r
资料:正确6 h) I; L0 n8 s) D# j3 H3 r
: B4 d' z" I/ I/ I$ {( b b+ v
40.如果元组里面只有整数、浮点数、字符串、一个列表,就既不能添加数据,也不能删除数据,还不能修改里面数据的值。: B) B j5 |3 s' Y4 b" B, v
资料:错误" E4 N4 d T8 z! `
+ z& J, h& e1 L+ ^' G/ m" O) l ]
41.HTTP状态码302表示资源永久重定向。. R: v( E& \0 R5 B. z1 T
资料:错误* f/ ?6 y1 `& j9 @8 f* r# j
" x' h; e+ N- H/ e0 d
42.使用异步加载技术的网站,被加载的内容可以在源代码中找到9 r( s8 S* E8 n+ I3 b) i% m+ _& H) r
资料:错误$ [& \6 U4 x. Z) e: t( A8 {& \
* ^( d+ H& ~& ~, z8 F) M# l
43.Python中条件语句在使用and连接的多个表达式中,只要有一个表达式不为真,那么后面的表达式就不会执行。1 s' s5 b+ u& F" ]! f1 [
资料:正确
2 L t3 K/ Q+ a+ N3 E) v
1 D8 D4 ]9 I( V8 P, } R44.当运行爬虫代码后,出现"Forbidden by robots.txt"提示后,说明当前时间段被爬取的网站无法访问。
7 u$ a9 ~+ v/ X# }1 x: j: s7 S资料:错误
* q9 Z! t7 t7 t" U: [3 I1 D
* W! N9 D$ L: e0 ^" d( O45.在请求头中设置User-Agent即可正常请求网站8 h% @# C9 _8 ^! O
资料:错误% J4 M. J' R; w
" H2 ~3 [/ B: [7 l* V
46.爬虫中间件的激活需要另外写一个文件来进行
9 @# R- P& ~4 q! Q6 F* D( u资料:错误; E& B4 _. v5 f, ~0 p7 P& v" N: F
: M. W! {1 Y, O5 Z' y. ]+ O' [& T& ^
47.在Ubuntu下若要运行Redis可以使用CMD进入解压以后的文件夹并运行命令redis-server.exe redis.windows.conf启动Redis
6 _+ J. L1 \: B6 B$ }. ?0 E资料:错误# d% [ o5 M1 w, ^1 |: s* l- x
" e1 y- R, d+ u1 i* H
48.当使用Charles监控iOS设备或者Android设备的数据包以后,打开微信小程序,小程序的数据包不能自动被Charles抓住,需要另作处理。
1 C' L% Z2 I, N% u0 ]7 N& G资料:错误7 }1 M. z- D$ k* E4 S: W: J
$ X* f2 }& Q: I8 P7 r49.charles配置中,安装完成证书以后,在设置中打开"关于本机",找到最下面的"证书信任设置",并在里面启动对Charles证书的完全信任。
9 @: [: M9 d+ o资料:正确
- m) i) ]; d: I6 I. N; [- `, P% }* A5 k& {
50.Python中写CSV文件的writerows方法参数为字典类型, o: Z# J6 c4 r! J& o# w
资料:错误
( f Q3 J3 Y* `6 Z' r# G& z2 i& Z4 A, g. {+ W5 f9 o
# Q- s O8 D" R. r( W7 Z( ], G
" L j# Z( v1 e
. r/ D( a4 {& N' f
8 ?; S( S, b% U9 T( s; h6 Z/ Z/ p, C
# `# L1 `: A( b* z& |
/ T, k0 i: t6 F3 b
) |! t$ l C, K L/ ?1 I- c
2 `8 @2 W: _2 A4 g( G& O& G5 _1 o6 r5 u. @3 u9 P! W7 C
$ v- V1 B8 N, U* z$ v
|
|