1. 程式人生 > >數據挖掘_requests模塊的get方法

數據挖掘_requests模塊的get方法

.json com 數據抓取 不變 兩個 ID ip地址 並不會 res

技術分享圖片

關於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方法