使用requests,它的七個主要方法,在這裡只講兩個:get、post
>>>
import
requests
>>> r=requests.get(
""
)
>>> r.status_code 200
>>> r.encoding
'iso-8859-1'
'utf-8'
>>> r.text # 發現編碼不行,改編碼
>>> r.encoding=
'utf-8'
注意requests庫有時會產生異常,比如網路連線錯誤、http錯誤異常、重定向異常、請求url超時異常等等。所以我們需要判斷r.status_codes是否是200。
我們可以利用r.raise_for_status()語句去捕捉異常,該語句在方法內部判斷r.status_code是否等於200,如果不等於,則丟擲異常。
乙個爬取網頁的通用**框架:
try:
r=requests.get(url,timeout=30)
#請求超時時間為30秒
r.raise_for_status()
#如果狀態不是200,則引發異常
#配置編碼
return
r.text
except:
return
"產生異常"
params =
r = requests.post(
''
,data=params)
在伺服器端用request.post.get(
"data"
)什麼也獲取不到,用request.body獲取到的是b
'k2=v2&k1=v1'
,
但這樣的格式怎麼也轉不成字典,
r = requests.post(
''
,json=params)
用request.body獲取到b
''
,其實我想說的是:
在客戶端產生了乙個字典,由於需要加密,所以成了這樣的資料:b
'qwrasdfsdfsfa'
,怎麼發呢?
直接發就行:
a = b
'qwrasdfsdfsfa'
r = requests.post(
''
,data=a)
然後在伺服器端用request.body()獲取資料然後解密就行。
python3-requests詳解:
Python3 requests模擬登入天善智慧型
usr bin env python coding utf 8 author chris iven python version 3.6 分析 行為 login url data token token 是在login url 裡面的乙個 登入必須帶的引數 單獨獲取不行 username passw...
python3學習 requests使用
import requests r requests.get params r requests.get params params print r.url k1 1 k2 v2 post請求 r requests.post data import requests import json para...
python3學習 requests使用
前面我們講過了urllib模組,知道他是用於網路請求的,這一節講的requests還是用於網路請求的,只不過urllib是官方模組,而requests是第三方的模組。用過的人都說他才是 人類使用的 哈哈,我也沒覺得urllib有多麼尿性啊!下面我們試著回歸人類的生活吧。這是第三方的模組,所以需要手動...