测验1: Python网络爬虫之规则 (第1周)
1.下面哪些功能网络爬虫做不到?
A
分析教务系统网络接口,用程序在网上抢最热门的课。
B
持续关注某个人的微博或朋友圈,自动为新发布的内容点赞。
C
爬取某个人电脑中的数据和文件。
D
爬取网络公开的用户信息,并汇总出售。
正确答案: C
个人电脑中数据没有联网且没有通过Web服务器以URL形式被网络访问,则不能用爬虫获取。
切记,及时能爬取数据,数据的知识产权仍然受保护,商业获利(出售)将涉嫌违法。
2.以下选项不是Python Requests库提供方法的是:
A
.head()
B
.post()
C
.push()
D
.get()
正确答案: C
Requests库共有7个主要方法:request()、get()、head()、post()、put()、patch()、delete(),名字基本与HTTP的操作相同。
3.在Requests库中,以下哪个函数是基础性函数?即,只需要一个函数即可完成全部功能。
A
request()
B
delete()
C
post()
D
get()
正确答案: A
request()是其他所有函数的基础函数,完成所有功能,其它函数只是它的一种封装形式。
4. 在Requests库中,体现推送数据操作的函数是:
A
head()
B
get()
C
patch()
D
delete()
正确答案: C
数据推送(push model)一般指将数据发送出去的行为。在Requests库中,post()、put()、patch()都体现这种行为模式。
5.Requests库中的get()方法最常用,下面哪个说法正确?
A
get()方法是其它方法的基础,所以最常用。
B
网络爬虫主要进行信息获取,所以,get()方法最常用。
C
服务器因为安全原因对其他方法进行限制,所以,get()方法最常用。
D
HTTP协议中GET方法应用最广泛,所以,get()方法最常用。
正确答案: C
get()方法最常用的原因在于服务器端对push()、post()、patch()等数据推送的限制,试想,如果允许大家向服务器提交数据,将带来无穷无尽的安全隐患。因此,通过get()获取数据,服务器作为数据提供方而不是接收方,更为安全。
6.Requests库中,检查Response对象返回是否成功的状态属性是:
A
.status_code
B
.raise_for_status
C
.status
D
.headers
正确答案: A
r.status_code,200表示连接成功,404表示失败。
- Requests库中,以下代表从服务器返回HTTP协议头所推荐编码方式的属性是:
A
.encoding
B
.apparent_encoding
C
.headers
D
.text
正确答案: A
.encoding是从HTTP header中猜测获得的响应内容编码方式。
8. Requests库中,以下代表从服务器返回HTTP协议内容部分猜测获得编码方式的属性是:
A
.apparent_encoding
B
.headers
C
.text
D
.encoding
正确答案: A
.apparent_encoding是从内容中分析出的编码方式,一般作为备选编码方式。
9. Requests库中,下面哪个是由于DNS查询失败造成的获取URL异常?
A
requests.ConnectionError
B
requests.Timeout
C
requests.URLRequired
D
requests.HTTPError
正确答案: A
DNS失败将造成网络连接错误,因此产生连接错误异常。
10. Requests库中,下面哪个最可能是由于URL格式错误造成异常?
A
requests.TooManyRedirects
B
requests.ConnectionTimeout
C
requests.URLRequired
D
requests.HTTPError
正确答案: C
URL格式错误,一般指URL格式不符合规范导致无法建立连接,通常会产生URLRequired错误。如果URL格式正确,可能触发Timeout类错误。
11.以下哪个是不合法的HTTP URL?# 00370034003200320035120
B
https://223.252.199.7/course/BIT-1001871002#/
正确答案: A
合法URL都必须包含http://或https://等作为定位开头,一般浏览器会默认增加这些头部,用户只需要输入后面的部分,然而在网络通信中,需要使用全部信息。
12.在Requests库的get()方法中,能够定制向服务器提交HTTP请求头的参数是什么?
A
json
B
data
C
cookies
D
headers
正确答案: D
headers以字典的形式给出定制HTTP头部,一般用于模拟浏览器行为。
13.在Requests库中,通过设定headers中哪个键能够模拟不同浏览器?
A
user-agent
B
accept
C
accept-encoding
D
connection
正确答案: A
使用user-agent键可以模拟浏览器,例如:
‘user-agent’ : ‘Mozilla/5.0’
14. 在Requests库的get()方法中,timeout参数用来约定请求的超时时间,请问该参数的单位是什么?
A
微秒
B
毫秒
C
秒
D
分钟
正确答案: C
在网络通信(大部分计算机程序)中,一般参数时间设定都以秒为准。
15. 获取网络上某个URL对应的图片或视频等二进制资源,应该采用Response类的哪个属性?
A
.status_code
B
.text
C
.content
D
.head
正确答案: C
content记录数据的二进制形式,图片以二进制形式传输,用其来还原。
16.百度的关键词查询提交接口如下,其中,keyword代表查询关键词:
https://www.baidu.com/s?wd=keyword
请问,提交查询关键词该使用Requests库的哪个方法?
A
.patch()
B
.put()
C
.post()
D
.get()
正确答案: D
get()用于获取某个链接的结果,keyword已经在URL中表达,通过get()获取结果。这个过程不是推送,而是拉取。
17. Robots协议的全称是:
A
网络爬虫排除标准
B
网络爬虫标准
C
机器人协议
D
罗伯特协议
正确答案: A
Robots Exclusion Standard,网路爬虫排除标准,其中,"排除"是亮点。
18.以下说法错误的是:
A
Robots协议告知网络爬虫哪些页面可以抓取,哪些不可以。
B
Robots协议是互联网上的国际准则,必须严格遵守且受技术约束。
C
Robots协议可以作为法律判决的参考性“行业共识”。
D
Robots协议是一种约定。
正确答案: B
建议严格尊重Robots协议,但在个别情况下使用爬虫是可以的,并非技术层面的严格限制。
19. 下面哪个不是网络爬虫带来的负面问题?
A
法律风险
B
性能骚扰
C
商业利益
D
隐私泄露
正确答案: C
如果涉嫌非授权使用爬虫,并产生商业利益,这已经触犯了法律。
20.如果一个网站的根目录下没有robots.txt文件,以下说法错误的是:
A
网络爬虫可以肆意爬取该网站内容。
B
网络爬虫应该以不对服务器造成性能骚扰的方式爬取内容。
C
网络爬虫的不当爬取行为仍然具有法律风险。
D
网络爬虫可以不受限制的爬取该网站内容并进行商业使用。
正确答案: D
如果没有robots.txt文件,则认为网站内容均可以被爬取,但数据内容所有权仍然归网站所有,商业使用涉嫌侵权。
即:Robots协议只约定爬虫行为,不约定内容的法律归属。