網絡編程、請求接口

### 方法一:urllib 模塊 ###html

from urllib import request ---- python 自帶模塊(標準模塊) ----- (不推薦使用)python

url = 'http://www.baidu.com'json

req = request.urlopen(url) ---- 打開一個 urlcookie

print(req.read().decode()) ---- 讀返回結果網絡

fw = open('baidu.html','w',encoding='utf-8')post

fw.write(content)測試


## 網絡爬蟲;從其餘的網站上獲取一些有用的內容網站


例1:訪問接口,並對結果進行判斷 ---------- get 請求url

from urllib import request
import jsoncode

url = 'http://xxxxxxx'

req = request.urlopen(url)

content = req.read().decode()

res_dic = json.loads(content) -------- 返回結果轉成字典

if res_dic.get('error_code') == 0:
  print('測試經過')
else:
  print('測試失敗')

例2:訪問接口,並對結果進行判斷 ---------- post 請求

from urllib import request,parse
import json

url = 'http://xxxxxxxx'
data = {
  'username':'admin',
  'passwd':'aA123456'
}
data = parse.urlencode(data) ----- urlencode;自動拼好參數
req = request.urlopen(url,data.encode()) ----- 發 post 請求
print(req.read().decode())

 


#### 方法二:requests #### ------- 推薦使用

****** GET 請求 ******

import requests

url = 'http://xxxxxxxx'

data = {'stu_name':'小黑'} ----- 中文再也不報錯

req = requests.get(url,params=data) ----- 傳輸url ,參數

print(req.json()) ----- 返回字典類型

print(req.text) ----- 返回 str 類型

 

****** POST 請求 ******

import requests

url = 'http://xxxxxxxx'

data = {'username':'niuhanyang','passwd':'aA123456‘}

req = requests.post(url,data) ----- 發送 post 請求

print(req.json()) ----- 返回字典類型

print(req.text) ----- 返回 str 類型

 

****** 入參爲 json 類型 ******

import requests

url = 'http://xxxxxxxx'
data = {
  "name":"小黑",
  "grade":"天蠍座",
  "phone":18654854512,
  "sex":"男",
  "age":28,
  "addr":"河南大道"
}

req = requests.post(url,json=data) ----- data 爲 json 類型

print(req.json())

 

****** 添加 cookie ******

import requests

url = 'http://xxxxxxxx'

data = {'stu_id':468,'gold':10000}

cookie = {'niuhanyang':'337ca4cc825302b3a8791ac7f9dc4bc6'}

req = requests.post(url,data,cookies=cookie)

print(req.json())

print(req.text)

 

****** 添加 header ******

import requests

url = 'http://xxxxxxxx'

header = {'Referer':'http://xxxxxxxx'}

req = requests.get(url,headers=header)

print(req.json())

print(req.text)

 

****** 上傳文件 ******

import requests

url = 'http://xxxxxxxx'

data = {
  'file':open(r'C:\Users\Lynn\Desktop\file.txt',encoding='utf-8')
}

req = requests.post(url,files=data)

#上傳圖片的話用 data = {'file':open(r'C:\Users\Lynn\Desktop\aa.jpg','rb')}


print(req.json())

print(req.text)

 

 

****** 下載文件/圖片 ******

import requests

url = 'https://ss0.bdstatic.com/6ONWsjip0QIZ8tyhnq/it/u=1618097094,4154452434&fm=77&w_h=121_75&cs=423647557,799948659'

req = requests.get(url)

print(req.content) #返回的二進制的

fw = open('s.jpg','wb') #二進制寫

fw.write(req.content)

相關文章
相關標籤/搜索