python学习(二十六)网络编程

1、request方法 发送get请求

from urllib import request
import json

url=‘xxx/stu_info?stu_name=xiaohei‘
req=request.urlopen(url,)#打开一个url发送get请求
content=req.read().decode()#获取返回结果
res_dic=json.loads(content)#返回结果转成字典
if res_dic.get(‘error_code‘)==0:
    print(‘测试通过‘)
else:
    print(‘测试失败‘,res_dic)

2、request方法 发送post请求

from urllib import request,parse

url=‘http:xxx/login‘
data={
    ‘username‘:‘admin‘,
    ‘passwd‘:‘aA123456‘
    }#请求数据
data=parse.urlencode(data) #urlencode自动拼好参数
req=request.urlopen(url,data.encode())  #发post请求
print(req.read().decode())

3、requests方法 发送get请求

import requests
url=‘http://xxx/stu_info‘
data={‘stu_name‘:‘小黑‘}   #请求数据
req=requests.get(url,params=data) #发get请求
print(req.json())   #字典
print(req.text)#string,json串

4、requests方法 发送post请求

import requests
url=‘http://xxx/api/user/login‘
data={‘username‘:‘niuhanyang‘,‘passwd‘:‘aA123456‘}  #请求数据
req=requests.post(url,data)#发送post请求
print(req.json())

5、入参是json类型

import requests,random
url=‘http://xxx/api/user/add_stu‘
phone=random.randint(10000000000,99999999999)
data={
    "name":"刘佳",
    "grade":"天蝎座",
    "phone":phone,
    "sex":"女",
    "age":28,
    "addr":"河南省济源市北海大道32号"
  }
req=requests.post(url,json=data)
print(req.json())

6、检验cookie

import requests
url=‘http://xxx/api/user/gold_add‘
data={‘stu_id‘:‘468‘,‘gold‘:999999}
cookie={‘niuhanyang‘:‘337ca4cc825302b3a8791ac7f9dc4bc6‘}
req=requests.post(url,data,cookies=cookie)
print(req.json())

7、添加header

import requests
url=‘http://xxx/api/user/all_stu‘
header={‘Referer‘:‘http://api.nnzhp.cn/‘}
req=requests.get(url,headers=header)
print(req.json())

8、上传文件

import requests
url=‘http://xxx/api/file/file_upload‘
#data={‘file‘:open(‘笔记‘,encoding=‘utf-8‘)}  #有中文要加utf-8
data={‘file‘:open(r‘C:\Users\acer\Desktop\QQ图片20180331170810.png‘,‘rb‘)} #打开图片,以二进制的方式打开才行
req=requests.post(url,files=data)
print(req.json())

9、下载文件或图片等

url=‘http://xxx/wp-content/uploads/2018/01/soup.jpg‘
req=requests.get(url)
fw=open(‘a.jpg‘,‘wb‘)
fw.write(req.content)  #保存到本地
url=‘http://xxx/archives/630‘
req=requests.get(url)
fw=open(‘pyquery.html‘,‘wb‘)
fw.write(req.content)  #保存到本地

原文地址:https://www.cnblogs.com/emilyliu/p/9048703.html

时间: 2024-07-29 16:07:56

python学习(二十六)网络编程的相关文章

Python 学习 第十六篇:networkx

networkx是Python的一个包,用于构建和操作复杂的图结构,提供分析图的算法.图是由顶点.边和可选的属性构成的数据结构,顶点表示数据,边是由两个顶点唯一确定的,表示两个顶点之间的关系.顶点和边也可以拥有更多的属性,以存储更多的信息. 对于networkx创建的无向图,允许一条边的两个顶点是相同的,即允许出现自循环,但是不允许两个顶点之间存在多条边,即出现平行边. 边和顶点都可以有自定义的属性,属性称作边和顶点的数据,每一个属性都是一个Key:Value对. 一,创建图 在创建图之前,需要

Python学习日记(二十九) 网络编程

早期的计算机通信需要有一个中间件,A要给B传东西,A必须要把信息传给中间件,B再把从中间件中拿到信息 由于不同机器之间需要通信就产生了网络 软件开发的架构 1.C/S架构 服务器-客户机,即Client-Server架构,C/S架构通常采取两层结构.Sever负责数据的管理,Client负责完成与用户的交互任务 这里来说Client主要是某个应用软件的exe文件,程序要在安装后,才能运行在用户电脑上. 例如:QQ.微信.网易云音乐等 2.B/S架构 浏览器端-服务器,即Browser-Sever

python学习笔记8:网络编程--requests模块

python操作网络,也就是打开一个网站,或者请求一个http接口. 使用requests模块,pip install requests 安装即可. requests 模块是基于urllib模块进行开发的,urllib用起来比较麻烦:传参数的话,都得是bytes类型,返回数据也是bytes类型,还得解码.所以我直接丢弃之 一.打开一个网站 二.请求一个接口 1.key-value传参的接口 2.json传参的接口 3.要添加cookie的接口 4.要加header的接口 5.要加权限的接口

python学习笔记十六 django深入学习一

django 请求流程图 django 路由系统 在django中我们可以通过定义urls,让不同的url路由到不同的处理函数 from . import views urlpatterns = [ url(r'^articles/2003/$', views.special_case_2003), #精确匹配 url(r'^articles/([0-9]{4})/$', views.year_archive), #动态路由 url(r'^articles/([0-9]{4})/([0-9]{2

笨办法学Python(二十六)

习题 26: 恭喜你,现在可以考试了! 你已经差不多完成这本书的前半部分了,不过后半部分才是更有趣的.你将学到逻辑,并通过条件判断实现有用的功能. 在你继续学习之前,你有一道试题要做.这道试题很难,因为它需要你修正别人写的代码.当你成为程序员以后,你将需要经常面对别的程序员的代码,也许还有他们的傲慢态度,他们会经常说自己的代码是完美的. 这样的程序员是自以为是不在乎别人的蠢货.优秀的科学家会对他们自己的工作持怀疑态度,同样,优秀的程序员也会认为自己的代码总有出错的可能,他们会先假设是自己的代码有

python 学习二十五天(python内置模块之序列化模块)

今日主要内容 1.python内置模块-序列化模块 python中的序列化模块 json 所有的编程语言都通用的序列化格式....它支持的数据类型非常有限 数字 字符串 列表 字典 pickle 只能在python语言的程序之间传递数据用的..pickle支持python中所有的数据类型 shelve python3.* 之后才有的 2.摘要模块---hashlib 3.一道经典面试题 第一.python内置模块---序列化 ***所有的导入模块都需要把import放在文件首位 什么叫序列化 能

Python学习笔记十六_模块结构调整

一.什么是模块结构调整 当一个脚本中有大量的配置.方法及接口时,脚本往往显得十分臃肿.为了代码更易读,可以将一个繁杂的脚本根据不同的功能放在不同的文件夹中分类管理,即模块结构调整. 二.模块结构调整实例 下面根据一个具体的例子来看一下如何拆分调整代码 1.根据正常人的思维写代码完成功能 代码需求: (1) 注册接口: (a) 写一个注册接口,密码存成密文 (b) 数据存到redis,redis的key用string类型 (c) Amy  7869d295e566295b51eec5d6bed67

Python学习(十六)内置函数,递归

1.递归 def test1(): num=int(input('输入数字')) if num%2==0: #判断输入数字是不是偶数 return True #是偶数,程序退出,返回true print('不是偶数请重新输入') return test1() #不是偶数的话继续调用自己,输入值 print(test1()) 递归的效率不高,最多递归999次 2.内置函数 python自带的函数 id()#看内存地址type()#看数据类型print()#打印input()#输入list() #转

Python学习第十六篇——异常处理

在实际中,很多时候时候,我们并不能保证我们所写的程序是完美的.比如我们程序的本意是:用户在输入框内输入数字,并进行后续数学运算,即使我们提醒了用户需要输入数字而不是文本,但是有时会无意或者恶意输入字符串等我们意料之外的东西,但我们又不想让我们的程序崩溃,Python引入了一种"异常处理"机制,使得我们能够正确的处理这种意外: 比如下面这段代码:想读取文件的内容,但假如所要读取的文件不存在应该怎么办: 1 def file_read(filename): 2 try: 3 with op

python学习第33天网络编程part3

之前简单介绍了tcp和udp的服务端和客户端,但一个完整的服务端必须至少满足三个功能 (1)绑定一个固定的ip和port (2)一直对外提供服务,稳定运行 (3)能够支持并发 一.通信循环 对于客户端与服务端,不单单只能交流一次,正常需要交流多次,这时候需要支持通信循环,用while循环实现多次交流 服务端: from socket import * server = socket(AF_INET, SOCK_STREAM) server.bind(('127.0.0.1', 8080)) se