python学习笔记-day8-3-【python 网络请求及requests模块】

python的网络请求,主要是进行Http协议类接口调用,进行接口测试等。

一、urllib库,python内嵌的库,不太好用。

from urllib import request,parse
import json

# url = ‘http://baidu.com‘
# req = request.urlopen(url) #打开一个url
# content = req.read().decode()
# fw = open(‘nnzhp.html‘, ‘w‘, encoding=‘utf-8‘)
# fw.write(content)
# #网络爬虫,从其他的网站上,获取一些有用的内容

#get请求
# url = ‘http://www.baidu.com/‘
# req = request.urlopen(url)
# content = req.read().decode() #获取返回结果
# res_dic = json.loads(content) #返回的结果转为字典
# if res_dic.get(‘error_code‘) == 0:
#     print(‘测试通过.‘)
# else:
#     print(‘测试失败‘,res_dic)

#post请求
url = ‘http://xxxxxx/api/user/login‘
data = {
    ‘usernmae‘:‘admin‘,
    ‘passwd‘: ‘aA123456‘
}#请求数据
data = parse.urlencode(data)
# print(parse.urlencode(data))#urlencode,自动给你拼好参数
req = request.urlopen(url, data.encode()) #发送Post请求
print(req.read().decode())

二、requests模块,好用的模块

import requests
import random

#1、发get请求
# url = ‘http://xxxxxx/api/user/stu_info‘
# data = {‘stu_name‘:‘xxxx‘} #请求数据
# req = requests.get(url, params=data)
# print(req.json())
# print(req.text)
# print(type(req.json())) #dict
# print(type(req.text)) #str

#返回的都是什么
#返回的类型是什么
#中文的好使吗

#2、发post请求
url = ‘http://xxxxxxx/api/user/login‘
data = {‘username‘:‘xxxxx‘,‘passwd‘: ‘xxxxx‘}#请求数据
req = requests.post(url, data)
print(req.json())

#3、入参是json类型的
# url = ‘http://xxxxxx/api/user/add_stu‘
# phone = random.randint(10000000000,99999999999)
# data =  {
#     "name":"xxxx",
#     "grade":"天蝎座",
#     "phone":phone,
#     "sex":"女",
#     "age":28,
#     "addr":"河南省济源市北海大道32号"
#   }
# req = requests.post(url, json=data)
# print(req.json())

#4、入参是json类型的
# url = ‘http://xxxxxxx/api/user/gold_add‘
# data = {‘stu_id‘:468,‘gold‘:120000}
# req = requests.post(url, data, cookies={‘niuhanyang‘:‘337ca4cc825302b3a8791ac7f9dc4bc6‘})
# print(req.json())

#5、添加header
# url = ‘http://xxxxxxx/api/user/all_stu‘
# header = {‘Referer‘: ‘http://api/xxxxxxx/‘}
# req = requests.get(url, headers=header)
# print(req.json())
#{‘error_code‘: 4, ‘msg‘: ‘请求来路不正确‘}

#6、上传文件
# url = ‘http://xxxxxxxx/api/file/file_upload‘
# # data = {‘file‘:open(‘笔记-day08.txt‘,encoding=‘utf-8‘)}   #上传文件
# data = {‘file‘:open(‘12222.jpg‘, ‘rb‘)}   #上传图片
# req = requests.post(url, files=data)
# print(req.json())

#7、下载图片
#http://xxxxx/wp-content/uploads/2018/01/soup.jpg
# url = ‘http://wwwxxxxx/wp-content/uploads/2018/01/soup.jpg‘
# req = requests.get(url)
# print(req.content)#返回的二进制的东西
#
# fw = open(‘s.jpg‘, ‘wb‘)
# fw.write(req.content)

# url = ‘http://wwwxxxxxx/‘
# req = requests.get(url)
# print(req.content)#返回的二进制的东西
#
# fw = open(‘pymysql.html‘, ‘wb‘)
# fw.write(req.content)

#http://up.mcyt.net/?down/46779.mp3
url = ‘http://up.mcyt.net/?down/46779.mp3‘
req = requests.get(url)
print(req.content)#返回的二进制的东西
fw = open(‘aaaa,.mp3‘, ‘wb‘)
fw.write(req.content)

原文地址:https://www.cnblogs.com/shmily2018/p/9056142.html

时间: 2024-10-08 20:23:56

python学习笔记-day8-3-【python 网络请求及requests模块】的相关文章

python学习笔记day8【socket网络编程】

内容大纲 1.socke基础 两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket. 建 立网络通信连接至少要一对端口号(socket).socket本质是编程接口(API),对TCP/IP(或者UDP)的封装,TCP/IP也要提供可供程序员做网络 开发所用的接口,这就是Socket编程接口:HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力. Socket的英文原义是“孔”或“插座”.作为BSD UNIX的进程通信机制,取后

Day3: Python学习笔记之计算机基础——网络片

Day3: Python学习笔记之计算机基础--网络片 什么是互联网协议以及为何要有互联网协议? ?互联网协议本质上是为了方便连接两台计算机而指定的一系列统一的标准. osi五层模型 计算机之间要实现数据传输必须要经过以下五层协议: ? 模型 ,协议 ,硬件 ? 应用层, http协议.用户自定义协议 ? 传输层, TCP/UPD协议 ,四层交换机.四层路由器 ? 网络层, IP协议, 三层交换机.路由器 ? 数据链路层, 以太网.电信号分组, 网桥.以太网交换机.网卡 ? 物理层, 传递电信号

python学习笔记5:python读写文件

python学习笔记5:python读写文件 一.文件的打开模式 1.打开文件 1) f=open('D:\\a.txt','w') 第一个参数是文件的路径,如果只写文件的名字,默认是在当前执行目录下的文件:第二个参数是文件的打开模式 这种方式打开文件,在使用完了之后一定要记得,关闭文件: f.close() 2) with open('D:\\a.txt','w') as f 这种方式打开文件,文件在使用完后会自动关闭文件,不需要close  2. 文件的打开模式 总的来说,文件的打开模式有三

python学习笔记1——安装python

python学习笔记1--安装python centos和ubuntu的python2.7的安装方法参考:http://daixuan.blog.51cto.com/5426657/1767325 1.查看当前python版本并且 [[email protected] ~]# python -V Python 2.6.6 2.安装eple-release扩展源 [[email protected] ~]# yum install -y epel-release 3.安装pip [[email p

python学习笔记(01):python和c语言 标识符命名规则比较

python标识符命名规则:标识符的第一个字符必须是字母表中的字母(大写或小写)或者一个下划线(‘ _ ’).标识符名称的其他部分可以由字母(大写或小写).下划线(‘ _ ’)或数字(0-9)组成.标识符名称是对大小写敏感的.例如,myname和myName不是一个标识符.注意前者中的小写n和后者中的大写N.有效 标识符名称的例子有i.__my_name.name_23和a1b2_c3.无效 标识符名称的例子有2things.this is spaced out和my-name. c语言标识符命

PYTHON学习笔记-DAY-8

Python之路,Day8 - Socket网络编程 本节内容 Socket介绍 Socket参数介绍 基本Socket实例 Socket实现多连接处理 通过Socket实现简单SSH 通过Socket实现文件传送 作业:开发一个支持多用户在线的FTP程序 1. Socket介绍 概念 A network socket is an endpoint of a connection across a computer network. Today, most communication betwe

python学习笔记-Day8 上(pickle补充、字段、面向对象成员、成员修饰符、特殊方法)

pickle 序列化补充 # pickle load # 现在有两个python程序,调用关系如下 # s1.py class foo: …. Obj = foo(x,y) Pickle.dump(obj, open(‘db’,’wb’)) S2.py # s2.py from s1 import foo pickle.load(db) # s2.py 反序列化加载包含对象,一定要先导入对象对应的类,否则Pickle load将会报错 类多继承关系 有共同父类的继承关系如下 如图,如果我们有两个

Python学习笔记01:Python解释器

资料参考:廖雪峰的官方网站https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001407375700558864523211a5049c4983176de304549c8000 一.写在前面 笔者现在身处大三下学期,课业较少,自由时间比较充裕.大三上的时候学过<人工智能>和<自然语言处理导论>专业选修,写过简单的几个python代码(其实都是网上扒的).当时没有系统

Python学习笔记6:Python序列

1.序列 成员有序排列,并且可以通过下标偏移量访问到它的一个或几个成员的类型统称为序列. (1)标准类型操作符 (2)序列类型操作符 成员关系操作符(in,not in) 对象 [not] in 序列 连接操作符(+) seq1+seq2 重复操作符(*) seq*copies_int 切片操作符([],[:],[::]) seq[index] (0<=index<=len(seq)-1 || -len(seq)<=index<=-1) seq[starting_index:end