python网络编程----requests模块

python访问网站可以用标准模块--urllib模块(这里省略),和requests(安装-pip install requests)模块,requests模块是在urllib的基础上进行的封装,比urllib模块功能更强到,易用

import json,requests
#发送get请求
url = ‘http://api.nnzhp.cn/api/user/stu_info?stu_name=小黑马‘
req = requests.get(url) #发送get请求
print(req.text) #获取结果,返回string/html等用text
print(req.json()) #获取结果直接就是字典,等价于  print(json.loads(req.text)) #json串转化成字典,注:返回的必须是json串,才能用.json方法。

#发送post请求
url = ‘http://api.nnzhp.cn/api/user/login‘
data =  {‘username‘:‘niuhanyang‘,‘passwd‘:‘aA123456‘}
req = requests.post(url,data) #发送post请求,第一个参数是url,第二个参数是请求参数
print(req.json())

#入参是json的
url = ‘http://api.nnzhp.cn/api/user/add_stu‘
data =  {‘name‘:‘丁飞‘,‘grade‘:‘巨蟹座‘,‘phone‘:31971891223}
req = requests.post(url,json=data) #发送post请求,第一个参数是url,第二个参数是请求参数
print(req.json())

#添加cookie
url = ‘http://api.nnzhp.cn/api/user/gold_add‘
data =  {‘stu_id‘:231,‘gold‘:1000}
cookie = {‘niuhanyang‘:‘6d195100b95a43046d2e385835c6e2c2‘}
req = requests.post(url,data,cookies=cookie)
print(req.json())

#添加header
url=‘http://api.nnzhp.cn/api/user/all_stu‘
h = {‘Referer‘:‘http://api.nnzhp.cn/‘,‘User-Agent‘:‘Chore‘}#可以添加多个header,用,分开
res = requests.get(url,headers=h)
print(res.json())

#上传文件
url = ‘http://api.nnzhp.cn/api/file/file_upload‘
f = open(r‘C:\Users\bjniuhanyang\Desktop\ad.cpm.schedulingInfo.v1.json‘,‘rb‘)
r = requests.post(url,files={‘file‘:f})
print(r.json())

#下载文件
url= ‘http://www.besttest.cn/data/upload/201710/f_36b1c59ecf3b8ff5b0acaf2ea42bafe0.jpg‘
r  = requests.get(url)
print(r.status_code)  #获取请求的状态码
print(r.content)  #获取返回结果--二进制格式的
fw = open(r‘bt.jpg‘,‘wb‘)
fw.write(r.content)
fw.close()

#保存网页
url = ‘http://www.nnzhp.cn/archives/630‘
r = requests.get(url)
f = open(‘nnzhp.html‘,‘wb‘)
f.write(r.content)
f.close()

  

原文地址:https://www.cnblogs.com/alasijia/p/8439675.html

时间: 2024-10-12 03:04:28

python网络编程----requests模块的相关文章

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网络爬虫-requests模块(II)

有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三“人人网”个人主页数据)时,如果使用之前requests模块常规操作时,往往达不到我们想要的目的,例如: #!/usr/bin/env python # -*- coding:utf-8 -*- import requests if __name__ == "__main__": #张三人人网个人信息页面的url url = 'http://www.renren.com/289676607/profile' #伪装UA

python网络编程socket模块实现ftp上传下载

本实验实现ftp上传文件下载文件功能,并具有校验文件完整性,打印进度条功能, 主要练习socket,struct模块. ftp用户文件存放在user.json文件中 user.json文件内容 {"lisi": "abcdef", "hyh": "123456"} ftp客户端脚本ftpclient.py #!/usr/bin/python # --*-- coding: utf-8 --*-- import socket i

网络编程requests模块的介绍

首要要安装requests,安装命令是pip install requests 1.发送请求和传递参数_get请求方式 import requests r = requests.get(url='http://www.itwhy.org')    #最基本的GET请求 print(r.status_code)    #获取返回状态 r = requests.get(url='http://dict.baidu.com/s', params={'wd':'python'})   #带参数的GET请

Python网络编程—struct模块的使用

struct模块的使用 1.原理: 将一组简单数据进行打包,转换为bytes格式发送.或者将一组bytes格式数据,进行解析. 2.接口使用 Struct(fmt) 功能: 生成结构化对象 参数:fmt 定制的数据结构 st.pack(v1,v2,v3....) 功能: 将一组数据按照指定格式打包转换为bytes 参数:要打包的数据 返回值: bytes字节串 st.unpack(bytes_data) 功能: 将bytes字节串按照指定的格式解析 参数: 要解析的字节串 返回值: 解析后的内容

Python网络编程实战之一个人开发环境搭建

本节介绍在Debian下利用Python进行网络编程时,需要安装的一些实用的工具包. 0x01  安装开发必备软件包 $ sudo aptitude -y install build-essential     ##"-y"的作用是:在安装过程中,如果遇到Y或N的提问,一律以Yes作为默认的答案 $ sudo aptitude -y install libsqlite3-dev $ sudo aptitude -y install libreadline6-dev $ sudo apt

python 网络编程 (二)---tcp

异常 python的socket模块实际上定义了4种可能出现的异常: 1)与一般I/O 和通信问题有关的socket.error; 2)与查询地址信息有关的socket.gaierror; 3)与其他地址错误有关的socket.herror; 4)与在一个socket上调用settimeout()后,处理超时有关的socket.timeout; import socket, sys, time host = sys.argv[1] textport = sys.argv[2] filename

[Python网络编程] DNS缓存解决方案

记得以前写爬虫的时候为了防止dns多次查询,是直接修改/etc/hosts文件的,最近看到一个优美的解决方案,修改后记录如下: import socket _dnscache={} def _setDNSCache(): """ Makes a cached version of socket._getaddrinfo to avoid subsequent DNS requests. """ def _getaddrinfo(*args, **

Python 网络编程

Python 提供了两个级别访问的网络服务.: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的全部方法. 高级别的网络服务模块 SocketServer, 它提供了服务器中心类,可以简化网络服务器的开发. 什么是 Socket? Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯. socket()函数 Pyt