以前在跟你們講經過字典列表批量獲取數據的時候用過這個模塊html
安裝過程就再也不講解了python
requests模塊是python的http庫,能夠完成絕大部分與http應用相關的工做,因此咱們能夠用它來進行數據抓取工做json
requests模塊有兩個經常使用的方法,get 和 post 咱們也主要只是圍繞這兩個方法來說解requests模塊瀏覽器
注意:requests不能模擬瀏覽器的所有行爲服務器
在requests模塊中,咱們能夠經過get和post兩種形式去向服務器發出http請求post
例如,仍是用我本身的網站作例子,來簡單演示這個方法網站
# coding=utf-8 __Author__ = "susmote" import requests url = "http://www.susmote.com" resp = requests.get(url) with open("home.html", 'w', encoding='utf8') as f: f.write(resp.text)
在命令行運行編碼
咱們獲得了一個文件,也就是個人網站的首頁的源碼url
咱們經過瀏覽器打開,以下命令行
resp還有一些其餘的屬性,你可經過help(resp)查看response的各類屬性和方法
返回以下圖
咱們試一下里面的一些屬性
在這裏要特別注意一下編碼的問題
經過resp.encoding 能夠返回默認編碼,resp.text就是按照這個進行編碼的
但若是將編碼改成gb2312,就會出現亂碼
response具備content屬性,會以二進制的方式返回響應的內容,返回內容以下圖所示
response還有json方法,能夠將返回的文本內容以json的方式進行解析
http://jsonip.com 這個網站在接受get請求後,做爲響應會向請求方法返回一個json格式的文本,裏面會有發起請求的ip地址等信息
例以下面這個例子
# coding=utf-8 __Author__ = "susmote" import requests url = "http://jsonip.com/" resp_ip = requests.get(url) print("字符串格式") print(resp_ip.text) print(type(resp_ip)) print("字典格式") print(resp_ip.json()) print(type(resp_ip)) print(resp_ip.text)
下面咱們在命令行運行這個文件
在這個例子中,resp_ip的text包含了返回的文本信息,json格式的信息也是以文本的方式返回的,這個能夠從返回結果中看出
resp_ip.json()是使用json方法對返回的內容進行解析,將json解析的結果以字典的形式返回,但要注意的是json方法只是解析,並不會對resp.text形成影響,也就是以前的resp.text的內容是不變的
關與get方法大概就是這些,還有一些後面再講
官方博客 www.susmote.com