首页 > 其他分享 >requests进阶

requests进阶

时间:2022-10-27 22:34:29浏览次数:59  
标签:username 进阶 url session post password requests

一、图片下载

  • 下载图片,需获取到图片的url地址和图片名称,通过向图片url发起请求,之后获取.content
  • 注意:
  1. .text返回的是Unicode型的数据。
  2. .content返回的是bytes型也就是二进制的数据。
import requests
url = “https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png”
response = requests.get(url).content

with open("图片"+".png","wb") as f:
    f.write(response)

二、post请求

方法:

requests.post(url,data=None)

POST请求发送Form表单数据

  • 以表单的形式发送post请求
  • 注意:非必要不写入自己的cookie!
import requests
url = "https://httpbin.org/post"
data = {"json_style":"json_data"}
resp = requests.post(url,json=data)
print(resp.text)

# 结果
"json": null, 

 json

  • json.loads()

  将json字符串转化为python类型

  • json.dumps()

  将python类型转化为json字符串

三、session

  • session方法是requests库发起请求的一种方法,这种方法会自动保存访问页面得到的cookie值,从而再次访问的时候会自动携带cookie,使得操作cookie方便,不需要我们自己添加cookie了。常用于登录。

登录逻辑:

  功能:自动更新请求头信息,常用在账号登录的时候,先访问登录页url,再访问数据提交的url。

session的使用

基本的使用方法与requests.get 相似,使用的session的时候需要先创建session对象。

session = requests.session()#创建session对象
session.headers=headers#添加请求头
res_ss=session.post(url_login)

如何模拟登录:

  • 先创建一个pwd.ini的文件。
  • 写入账号密码

  • 导入模块
from configparser import ConfigParser
  • 创建ConfigParser对象

cfg = ConfigParser()
r = cfg.read("pwd.ini")
username = cfg.get("username","username")
password = cfg.get("password","password")
print(username,password)
  •  把账号密码写进post请求里即可
post_url = "https://passport.17k.com/ck/user/login"
post_data = {
    "loginName": username,
    "password": password
}

# 创建一个session对象
session = requests.session()
# 使用创建的session对象发送请求
resp = session.post(post_url,data=post_data)
print(resp.text)

完整代码示例:

import requests
from configparser import ConfigParser
# 创建ConfigParser对象
cfg = ConfigParser()
r = cfg.read("pwd.ini")
username = cfg.get("username","username")
password = cfg.get("password","password")
print(username,password)



post_url = "https://passport.17k.com/ck/user/login"
post_data = {
    "loginName": username,
    "password": password
}

# 创建一个session对象
session = requests.session()
# 使用创建的session对象发送请求
resp = session.post(post_url,data=post_data)
print(resp.text)

 

标签:username,进阶,url,session,post,password,requests
From: https://www.cnblogs.com/LoLong/p/16834249.html

相关文章

  • Python-requests 模块
    requests模块Python中原生的基于网络请求的模块,主要用来发送HTTP请求,简单便捷,效率极高.工作流程:指定url发起请求获取响应数据持久化存储requests请求......
  • 指针进阶5
    #define_CRT_SECURE_NO_MARNINGS1#include<stdio.h>//复习//intADD(intx,inty)//{//returnx+y;//}//intmain()//{////intarr[2]={1,2};//////指针数组......
  • JavaScript函数进阶
    JavaScript中函数是第一类对象。函数与对象共存,函数也可以被视为其他人一类型的JavaScript对象。函数能被变量引用、能以字面量形式声名,甚至可以作为函数参数进行传递。Java......
  • JavaScript进阶(Learning Records)
    背景:对JavaScript的深入学习参考:《JavaScript高级程序设计》《冴羽JavaScript深入》从原型到原型链prototypeprototype是每个函数都会有的属性functionPerson(){......
  • React进阶篇——十、高阶组件使用场景
    十、高阶组件使用场景操纵props在被包装组件接收props前,高阶组件可以先拦截到props,对props执行增加、删除或修改的操作,然后将处理后的props再传递给被包装组件,上一篇的......
  • Python从进阶到高级—通俗易懂版(五)
    #==================================#Author:Mikigo#Env:deepin20.4os#==================================自定义序列1、可切片对象切片大家都很熟悉,......
  • 狂神说学习笔记:Docker进阶-Docker Compose
    DockerComposehttps://docs.docker.com/compose/简介Composeisatoolfordefiningandrunningmulti-containerDockerapplications.WithCompose,youuseaY......
  • TypeScript 复习与进阶三部曲 (2) – 把 TypeScript 当编程语言使用
    前言上一篇,我们提到,TypeScript进阶有3个阶段. 第一阶段是"把TypeScript当强类型语言使用",我们已经介绍完了. 第二阶段是"把TypeScript当编程语言使用"......
  • DRF进阶
    目录DRF框架请求与响应DRF之Requestrequest常用方法配置请求数据格式配置处理顺序局部配置全局配置DRf之ResponseReponse常用参数局部配置全局配置DRF框架请求与响应......
  • 网络爬虫之requests模块,自动办公领域之openpyx模块
    一、第三方模块的下载与使用  第三方模块:别人写的模块,一般情况下功能都特别强大  我们如果想使用第三方模块,第一次必须先下载,后面才可以反复使用(等同于内置模块......