网络编程请求接口
Posted lynn_chen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络编程请求接口相关的知识,希望对你有一定的参考价值。
### 方法一:urllib 模块 ###
from urllib import request ---- python 自带模块(标准模块) ----- (不推荐使用)
url = ‘http://www.baidu.com‘
req = request.urlopen(url) ---- 打开一个 url
print(req.read().decode()) ---- 读返回结果
fw = open(‘baidu.html‘,‘w‘,encoding=‘utf-8‘)
fw.write(content)
## 网络爬虫;从其他的网站上获取一些有用的内容
例1:访问接口,并对结果进行判断 ---------- get 请求
from urllib import request
import json
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)
以上是关于网络编程请求接口的主要内容,如果未能解决你的问题,请参考以下文章