当前位置: 首页 > news >正文

Python——requests模块

requests模块是python的一个第三方模块,它是基于python自带的urllib模块封装的,用来发送http请求和获取返回的结果,操作很简单。

requests模块是第三方模块,不是python自带的,需要安装才可以使用。

pip requests install


发送get请求
1、不带参数、 返回结果为字符串类型:可以使用res.json() 来转成字典

import requests

url = ''www.baidu.com'
res = requests.get(url)
print(res.json())

 

2、 带参数的get请求

url3 = 'http://118.24.3.40/api/user/stu_info'
param= {'stu_name':'小黑'}
res = requests.get(url3,params=param)
print(res.json())

3、入参需要传入header

url6 = 'http://118.24.3.40/api/user/all_stu'
header = {'Referer':'http://api.nnzhp.cn/'}
res =requests.get(url6,headers=header)
print(res.json())

post请求
1、入参是字典类型的
url2 = 'http://118.24.3.40/api/user/login'
data = {'username':'niuhanyang','passwd':'aA123456'}
res = requests.post(url2,data=data)
print(res.json())

2、入参是json类型的 注意:使用requests的post方式时候,要传递json的值


url4 = 'http://118.24.3.40/api/user/add_stu'
data = {"name":"maomaochongzi",
"grade":"1年级",
"phone":"15801427140",
"sex":"男",
"age":"18",
"addr":"beijing"
}
res = requests.post(url4,json=data)
print(res.json())

3、入参需传递cookie
url5 = 'http://118.24.3.40/api/user/gold_add'
data = {'stu_id':15,'gold':200}
cookie = {'niuhanyang':'35b103503b9f428f1e8a2e258cb2a172'}
res = requests.post(url5,data=data,cookies = cookie)
print(res.json())

4、上传文件,入参为文件类型

url9 = 'http://118.24.3.40/api/file/file_upload'
data = {'file':open('魔鬼天使.mp3','rb')}
res = requests.post(url9,files = data)
print(res.json())

 

5、下载文件  二进制类型

url9 = 'http://qiniuuwmp3.changba.com/1084511584.mp3'
res = requests.post(url9)

with open('天数恶魔.p3',wb) as frw

  fw.write(res.content)

6、如果url是https开头的 ,需要加verify = False

url8='https://aliimg.changba.com/cache/photo/855e5493-f018-44db-8892-c8660649327b_640_640.jpg'
res = requests.get(url8,verify = False)
with open('a.jpg','wb') as fw:
fw.write(res.content)

res.json() 必须返回的是json才可以用 返回的是字典
res.text 下载文件的话text就不行了 返回的是字符串
res.content 用来下载文件用的 返回的是二进制的
res.cookies 获取到返回的所有cookie
res.headers 获取到返回的所有herder

 

http权限认证

有一些网站,比如说下载东西的时候有http的权限验证,没有验证话就返回401 请求未经授权这种错误的。一般都是需要http权限验证,下面是怎么添加http权限验证。

当然这个http权限认证是http本身的,和你那些登陆请求那些不一样,比如说你要调一个登陆接口,传入的账号密码,和那个不是一回事,要区别开。

举个例子呢就是商场的大门上的锁就是这个http权限验证,这个锁是人家商场的,而你的店铺的锁才是你登陆接口,你输入的账号密码。一般你一打开一个网站直接弹出来一个窗口让你输入账号密码,你都看不到页面,这种就是http权限验证。而那种你打开网站之后,直接就能看到页面,你要登录的时候,输入账号密码然后点登录的,这种的就是正常的登陆请求。这种http权限验证的比较少见。

http代理设置

我们在写爬虫的时候,如果都用同一个ip访问多次访问某个网站,经常ip会被封,这样我们就访问不了了,那怎么解决呢,就得用ip代理了,代理的意思就是咱们把请求先发到代理上,然后再由代理帮咱们把请求发送出去,这样最终访问网站的ip就不是咱们自己的ip了。网上代理有很多,大多数收费的代理网站上每天都会有几个免费的代理,我先从https://www.kuaidaili.com/free/inha/ 这个里面找了几个免费的代理,设置代理的代码如下

转载于:https://www.cnblogs.com/caopeiyang/p/9371109.html

相关文章:

  • GitLab领取任务+建立分支+本地修改+上传分支+合并分支详细步骤
  • Win10应用商店缓存信息多如何去清理?
  • [数位DP][CQOI2016]手机号码(附数位DP模板)
  • SpringBoot | 第十一章:Redis的集成和简单使用
  • 搭建简单的单个Mybatis框架
  • Day 14:FileInputStream、FileOutputStream
  • 导出csv xls文件数字会自动变科学计数法的解决方式
  • 【POJ】1008 Maya Calendar
  • 逆袭之旅DAY.XIA.Object中常用方法
  • 你写的什么垃圾代码让Vsync命令不能及时处理呢?(2)
  • E_FAIL (0x80004005) MachineWrap
  • Day02 HTMLCSS
  • 随机生成数据以及测定时间
  • python之路day1
  • window对象(一) 计时器 定位导航 url解析 浏览历史 对话框 消息推送
  • (三)从jvm层面了解线程的启动和停止
  • [nginx文档翻译系列] 控制nginx
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • 3.7、@ResponseBody 和 @RestController
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • Docker 笔记(2):Dockerfile
  • Idea+maven+scala构建包并在spark on yarn 运行
  • JavaScript HTML DOM
  • JS专题之继承
  • JS字符串转数字方法总结
  • Python - 闭包Closure
  • Python打包系统简单入门
  • VUE es6技巧写法(持续更新中~~~)
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 浅谈web中前端模板引擎的使用
  • 推荐一个React的管理后台框架
  • 用jQuery怎么做到前后端分离
  • linux 淘宝开源监控工具tsar
  • 仓管云——企业云erp功能有哪些?
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • ###STL(标准模板库)
  • #define
  • #define用法
  • $(selector).each()和$.each()的区别
  • (1)常见O(n^2)排序算法解析
  • (10)STL算法之搜索(二) 二分查找
  • (33)STM32——485实验笔记
  • (C++17) std算法之执行策略 execution
  • (C语言)二分查找 超详细
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (转)h264中avc和flv数据的解析
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .NET Core 通过 Ef Core 操作 Mysql
  • .NET delegate 委托 、 Event 事件,接口回调