网络编程、请求接口

mac2022-06-30  87

### 方法一: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 requestimport 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,parseimport 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)

转载于:https://www.cnblogs.com/lynn-chen/p/9037570.html

最新回复(0)