Requests庫詳解
urllib庫作為基本庫,requests庫也是在urllib庫基礎上發展的
但是urllib在使用上不如requests便利,比如上篇文章在寫urllib庫的時候,比如代理設置,處理cookie時,沒有寫,因為感覺比較繁瑣,另外在發送post請求的時候,也是比較繁瑣。
一言而代之,requests庫是python實現的簡單易用的HTTP庫
在以後做爬蟲的時候,建議用requests,不用urllib
用法講解:
#!/usr/bin/env python # -*- coding:utf-8 -*- import requests response = requests.get(‘http://www.baidu.com‘) print(type(response)) print(response.status_code) print(type(response.text)) print(response.text) print(response.cookies)
輸出結果為:
<class ‘requests.models.Response‘>
200
<class ‘str‘>
<!DOCTYPE html>
<!--STATUS OK--><html>省略了 </html>
<RequestsCookieJar[<Cookie BDORZ=27315 for .baidu.com/>]>
由上面的小程序中可以看出,response.text直接就拿到str類型的數據,而在urllib中的urllib.request.read()得到的是bytes類型的數據,還需要decode,比較繁瑣,同樣的response.cookies直接就將cookies拿到了,而不像在urllib中那樣繁瑣
各種請求方式
import requests requests.post(‘http://www.baidu.com‘) requests.put(‘http://www.baidu.com‘) requests.delete(‘http://www.baidu.com‘) requests.head(‘http://www.baidu.com‘) requests.options(‘http://www.baidu.com‘)
基本get請求:
利用http://httpbin.org/get進行get請求測試
import requests
response = requests.get(‘http://httpbin.org/get‘)
print(response.text)
輸出結果:
{"args":{},"headers":{"Accept":"*/*","Accept-Encoding":"gzip, deflate","Connection":"close","Host":"httpbin.org","User-Agent":"python-requests/2.18.4"},"origin":"113.71.243.133","url":"http://httpbin.org/get"}
Requests庫詳解