Python網絡爬蟲與信息提取(第7期) 測驗1: Python網絡爬蟲之規則

共10道單選題,固定題目,限作答1次,10分鐘

1.Requests庫中,下面哪個最可能是由於URL格式錯誤造成異常?‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬(A)
A.requests.URLRequired
B.requests.TooManyRedirects
C.requests.HTTPError
D.requests.ConnectionTimeout

正確答案 A
URL格式錯誤,一般指URL格式不符合規範導致無法建立連接,通常會產生URLRequired錯誤。如果URL格式正確,可能觸發Timeout類錯誤。

2.在Requests庫中,體現推送數據操作的函數是:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬ (B)
A.delete()
B.patch()
C.head()
D.get()

正確答案 B
數據推送(push model)一般指將數據發送出去的行爲。在Requests庫中,post()、put()、patch()都體現這種行爲模式。

3.在Requests庫中,以下哪個函數是基礎性函數?即,只需要一個函數即可完成全部功能。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬ (A)
A.request()
B.delete()
C.get()
D.post()

正確答案 A
request()是其他所有函數的基礎函數,完成所有功能,其它函數只是它的一種封裝形式。

4.以下選項不是Python Requests庫提供方法的是:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬ (B)
A .head()
B .push()
C .post()
D .get()

正確答案 B
Requests庫共有7個主要方法:request()、get()、head()、post()、put()、patch()、delete(),名字基本與HTTP的操作相同。

5.Requests庫中,檢查Response對象返回是否成功的狀態屬性是:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪(B)‬‮‬‫‬‮‬
A .raise_for_status
B .status_code
C .status
D .headers

正確答案 B
r.status_code,200表示連接成功,404表示失敗。

6.Requests庫中,以下代表從服務器返回HTTP協議頭所推薦編碼方式的屬性是:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬ (B)
A .text
B .encoding
C .headers
D .apparent_encoding

正確答案 B
.encoding是從HTTP header中猜測獲得的響應內容編碼方式。

7.Requests庫中,以下代表從服務器返回HTTP協議內容部分猜測獲得編碼方式的屬性是:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬ (B)
A .text
B .apparent_encoding
C .headers
D .encoding

正確答案 B
.apparent_encoding是從內容中分析出的編碼方式,一般作爲備選編碼方式。

8.Requests庫中,下面哪個是由於DNS查詢失敗造成的獲取URL異常?‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬( C)
A requests.URLRequired
B requests.Timeout
C requests.ConnectionError
D requests.HTTPError

正確答案 C
DNS失敗將造成網絡連接錯誤,因此產生連接錯誤異常。

9.Requests庫中的get()方法最常用,下面哪個說法正確?‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬ (A)
A.服務器因爲安全原因對其他方法進行限制,所以,get()方法最常用。
B.HTTP協議中GET方法應用最廣泛,所以,get()方法最常用。
C.網絡爬蟲主要進行信息獲取,所以,get()方法最常用。
D.get()方法是其它方法的基礎,所以最常用。

正確答案 A
get()方法最常用的原因在於服務器端對push()、post()、patch()等數據推送的限制,試想,如果允許大家向服務器提交數據,將帶來無窮無盡的安全隱患。因此,通過get()獲取數據,服務器作爲數據提供方而不是接收方,更爲安全。

10.下面哪些功能網絡爬蟲做不到?‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬
A.爬取某個人電腦中的數據和文件。
B.爬取網絡公開的用戶信息,並彙總出售。
C.持續關注某個人的微博或朋友圈,自動爲新發布的內容點贊。
D.分析教務系統網絡接口,用程序在網上搶最熱門的課。

正確答案 A
個人電腦中數據沒有聯網且沒有通過Web服務器以URL形式被網絡訪問,則不能用爬蟲獲取。
切記,及時能爬取數據,數據的知識產權仍然受保護,商業獲利(出售)將涉嫌違法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章