數據挖掘_requests模塊的get方法
關於requests模塊
之前在跟大家講通過字典列表批量獲取數據的時候用過這個模塊
安裝過程就不再講解了
requests模塊是python的http庫,可以完成絕大部分與http應用相關的工作,所以我們可以用它來進行數據抓取工作
requests模塊有兩個常用的方法,get 和 post 我們也主要只是圍繞這兩個方法來講解requests模塊
註意:requests不能模擬瀏覽器的全部行為
get方法
在requests模塊中,我們可以通過get和post兩種形式去向服務器發出http請求
例如,還是用我自己的網站做例子,來簡單演示這個方法
# 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)
在命令行運行
我們得到了一個文件,也就是我的網站的首頁的源碼
我們通過瀏覽器打開,如下
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
數據挖掘_requests模塊的get方法