1. 程式人生 > >python3 爬蟲之requests模塊使用總結

python3 爬蟲之requests模塊使用總結

swd rom 一個 http 寫入 delet pen req 狀態碼

Requests 是第三方模塊,如果要使用的話需要導入。Requests也可以說是urllib模塊的升級版,使用上更方便。

這是使用urllib的例子。

import urllib.request
import json
url = http://www.weather.com.cn/data/sk/101190408.html
res = urllib.request.urlopen(url)#發送請求
result = res.read().decode()#獲取結果,結果是byte類型的需要decode()
print(json.loads(result))

下面是Requests 模塊的使用。

支持的請求:

requests.get(‘https://github.com/timeline.json’) #GET請求
requests.post(“http:xxx.xx.com/post”) #POST請求
requests.put(“http:xxx.xx.com/put”) #PUT請求
requests.delete(“http:xxx.xx.com/delete”) #DELETE請求
requests.head(“http:xxx.xx.com/head”) #HEAD請求
requests.options(“http:xxx.xx.com/get”) #OPTIONS請求

發送GET請求:

import
requests,json url = http://api.xx.cn/api/user/stu_info?stu_name=hi req = requests.get(url)#發送get請求 print(req.text)#獲取結果直接返回的就是json串 print(type(req.text)) #str print(json.loads(req.text))#json轉字典 print(req.json())#獲取結果就是字典,只有返回的是json串的話才能用req.json() print(type(req.json()))#dict

發送POST請求

url = http://api.xxx.cn/api/user/login
data = {username:aa,passwd:123} req = requests.post(url,data)#發送post請求,第一個參數是url,第二個參數是請求的數據 print(req.json())

發送格式為json的數據

url = http://api.xxx.cn/api/user/add_stu
data = {
    "name":"aa",
    "grade":"bb",
    "phone":13512530000,
 
  }
req = requests.post(url,json=data)#發送post請求,第一個參數是url,第二個參數是請求的數據,發送的json的話就寫json=data
print(req.json())

發送帶cookie的請求

url = http://api.xx.cn/api/user/gold_add
data = {stu_id:231,gold:100}
cookie = {aa:3d867b361afdaac1381b02ae746c7278}#key 為登陸的用戶名,value為sign的值
req = requests.post(url,data,cookies=cookie)#添加cookie
print(req.json())

發送的請求中帶Header

url = http://api.xxx.cn/api/user/all_stu
header = {User-Agent:Chrome}
req = requests.get(url,headers = header)
print(req.json())

上傳文件

url = http://api.xxx.cn/api/file/file_upload
f = open(rD:\aa.jpg,rb)#圖片要指定以二進制方式打開
r =requests.post(url,files={file:f})
print(r.json())

下載文件,圖片,視頻

url = https://images2017.cnblogs.com/blog/412654/201712/412654-20171213115213238-464712233.png
r =requests.get(url)
print(r.status_code)#獲取請求狀態碼
print(r.content)#獲取返回結果二進制格式的
fw = open(bt.jpg,wb)#當前路徑
#fw = open(r‘d:\bt.jpg‘,‘wb‘)#指定絕對路徑
fw.write(r.content)#將二進制格式內容寫入文件
fw.close()

爬蟲,把網頁保存到本地

url = http://www.cnblogs.com/nancyzhu/p/8029994.html
r = requests.get(url)
f = open(page.html,wb)
f.write(r.content)
f.close()

python3 爬蟲之requests模塊使用總結