在python常見的.get()使用方法中,用的最多的場合是在python字典和requests庫的情形中。
一、python字典中的get方法
python字典的get方法會返回指定鍵的值,dict.get(‘鍵’),返回“鍵”對應的“值”,如果鍵不在字典中則返回默認值None。代碼附上:
dict1={'國家':'中國','首都':'北京'}
print(dict1.get('國家'))
print(dict1.get('首都'))
print(dict1.get('省會'))
輸出爲:
中國
北京
None
如果鍵不在字典中,想要自己設置返回值,可以這樣處理,例如dict.get(‘鍵’,‘never’),鍵在字典中,則返回鍵對應的值,鍵不在字典中,則返回never。
dict1={'國家':'中國','首都':'北京'}
print(dict1.get('國家'))
print(dict1.get('首都','never'))
print(dict1.get('省會','never'))
輸出爲:
中國
北京
never
二、requests庫中的get方法
requests庫是一個常用的用於http請求的模塊,它使用python語言編寫,可以方便的對網頁進行爬取,是學習python爬蟲的較好的http請求模塊。request的get方法,通過r=requests.get(url)構造一個向服務器請求資源的url對象,對應解釋如下:
requests:返回一個包含服務器資源的response對象(response對象:包含返回的所有資源)
get():構造一個向服務器請求資源的requests對象
完整的requests使用方法包含3個參數,requests.get(url,params=None,*kwarge),其中
url:獲取頁面的url鏈接
params:url中的額外參數,字典或字節流格式,可選
**kwargs:12個控制訪問的參數
response對象有以下屬性:
屬性 | 說明 |
---|---|
r.status_code | http請求的返回狀態,若爲200則表示請求成功 |
r.text | http響應內容的字符串形式,即返回的頁面內容 |
r.encoding | 從http header 中猜測的相應內容編碼方式 |
r.apparent_encoding | 從內容中分析出的響應內容編碼方式(備選編碼方式) |
r.content | http響應內容的二進制形式 |
import requests
url = 'http://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=李嘉欣&pn=0'
r = requests.get(url)
print(r.status_code)
print(r.encoding)
print(r.apparent_encoding)
輸出爲:
200
UTF-8
utf-8
順着requests庫的get用法,爬取一組指定類型的圖片,在這裏選擇從百度圖片爬取名爲“李嘉欣”的一組圖片,附上代碼:
import requests
import re
num=0
url = 'http://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=李嘉欣&pn=0'
r = requests.get(url)
result = r.text
pic_url = re.findall('"objURL":"(.*?)",', result, re.S)
for each in pic_url:
print('正在下載第' + str(num + 1) + '張圖片,圖片地址:' + str(each))
pic = requests.get(each, timeout=7)
string = '李嘉欣'+ r'\\' + '李嘉欣' + '_' + str(num+1) + '.jpg'
fp = open(string, 'wb')
fp.write(pic.content)
fp.close()
num += 1
隨機選擇兩張圖片,查看一下
以上就是本文的所有內容,如果本文對你有幫助,可以給我點個贊,加個關注,謝謝!