一、选择题(每题
2
分)
1
、查看网站所用的技术可以使用以下的哪个模块(A)
A.Wad
B.Python-whois
C.Request
D.Urllib
2
、以下的
XPath
中用于选取所用
N
节点的表达式是(C)
A.N
B./N
C.//N
D.N/N
3
、正则表达式
R[0-9]{3}
,能匹配出以下哪个字符串(D)
A.R3
B.R03
C.R09
D.R093
4
、以下数据库中不属于关系数据库的是(B)
A.Mysql
B.Redis
C.MongpDB
D.PostgreSQL
5
、以下关于
cookie
与
session
说法正确的是(D)
A.Cookie
数据保存在服务器中
B.Session
数据保存在本地
C.
浏览器一般将
cookie
数据保存在
http
的
body
中
D.Session
是指抽象的客户端
-
服务器交互模式
6
、以下
re
方法中用于替换字符串的是(B)
A.Match
B.Sub
C.Find_all
D.Split
7
、以下哪一个
python
库用于语言处理(B)
A.Numpy
B.NLTK
C.Sympy
D.Scipy
8
、前端页面向后端发送表单数据通常使用(B)
A.Get
B.Post
C.Put
D.Delete
9
、
python
的
open
方法中代表追加写内容的模式字符是(C)
A.r
B.w
C.a
D.w+
10
、在
scrapy
目录下,哪个文件负责存放爬虫文件(A)
A.spiders
文件夹
B.Item.py
C.Pipeline.py
D.Setting.py
二、判断题(每题
2分)
1
、
axios
通过同步加载的方式完成对内容的获取与呈现(F)
2
、
Requests
比于
urllib
库更加简洁实用(T)
3
、
Selenium
相比于
Splash
更加的节约资源(F)
4
、
DictReader
可以将
CSV
的每一行作为一个字典来返回(T)
5
、
numpy
一般是被认为基于
pandas
设计的(F)
6
、
Api
与网页抓取共用许多概念与技术(T)
7
、破解滑动验证码需要实现图像拼接与匀速滑动(F)
8
、一般情况下
ajax
返回的数据是以
xml
形式封装的(T)
9
、
Tag
标签为
a
、
img
、
audio
时属性为
src
(F)
10
、
Selenium
的
webdriver
的版本必须和浏览器的版本相对应
(T)
三、填空题(每题
2
分)
1、爬虫前我们应该了解网站的___robots.txt
_____文件信息以被反爬虫封禁的风险。
2
、CSV文件的分隔值是____逗号
____。
3
、Python中内置的数据库模块是____sqlit3
____。
4、python中主要使用____pickle
____模块来实现序列化与反序列化。
5、常用的中文文本分析工具有___jieba、SnowNLP
_____。
6
、
BeautifulSoup
中,通过
tag
的
content
属性可以将
tag子节点以____列表____方式输出。
7、字符串str可以通过____strip
____方法来去除左右空格。
8、用于re.findall函数中的____http://[a-zA-Z0-9Λ.-]*
____表达式用于提取http://
开始的超链接。
9
、解释Robots协议:____网络爬虫排除协议
____。
10、表示匹配空行的正则表达式是____^$
____。
四、简答题(每题
4
分)
1
、请简要说明使用
Selenium
的大致流程。
(1)创建浏览器对象(2) 访问页面(3)定位网页元素(4) 网页交互
2
、是否可以将自己的爬虫的
User-agent
设置为知名爬虫呢。
代码角度上不会限制使用什么样的 User-agent,不断变换 User-agent 的值是很多不友好爬虫为了躲避服务器的检测的做法。但是这种做法是不可取的,它扰乱了Web 服务器的正常判断,就可能使得某种知名爬虫被检测出来不遵守 Robots 协议而产生纠纷。
3
、请简要说明点击一个网页链接,会发生的一系列时间。
(1)浏览器响应点击事件,解析 url
(2)发起 web 请求,建立与服务端的连接
(3)
服务端响应请求,服务端返回请示结果,浏览器处理返回的结果。
4
、请简要说明爬虫时应对图片验证码的主要思路有哪些。
(1)通过程序识别图片再转化为文字并输入。 (2)手动打码,避开程序破解验证码环节。 (3)使用人工打码平台服务。
5、请简要说明cookie与session的区别。
Cookie 数据保存在本地,而 session 数据保存在服务器。Session 是指象的客户端-服务器交互模式,而 cookie 是 session 的一个具体实现手段。
五、完成程序(每题
10
分)
1
、使用
requests
模块,将
'https://www.tissotwatches.cn/physicalstore/index/ajaxSearchStore/'?storeCity=
苏
州
&storeProvince=
江苏
'
中的参数提取出来单独作为参数并访问这个
url.
import requests
url = https://www.tissotwatches.cn/physicalstore/index/ajaxSearchStore/'
params = {"storeCity":"苏州","'storeProvince":"江苏"
res = requests.get(url, params = params)
print(res.status_code)
2
、使用
requests
模块访问
https://www.baidu.com
并通过正则表达式获取标题。
import requests,re
r=requests.get(https://www.baidu.com').content.decode('utf-8')
pt=re.compile|"||<title|>)S\s]+)<title\>)')
print(pt.search(r).group(2))