返回顶部
首页 > 资讯 > 后端开发 > Python >python模拟get/post请求登录
  • 274
分享到

python模拟get/post请求登录

pythonpost 2023-01-31 07:01:03 274人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

今天学习了python模拟登陆,然后自己进行一下总结,以csdn登录为例子,浏览器为Chrome 1:直接携带cookie请求url地址 1.1cookie放在headers中 import requests #1.直接携带cookie

今天学习了python模拟登陆,然后自己进行一下总结,以csdn登录为例子,浏览器为Chrome

1:直接携带cookie请求url地址

  • 1.1cookie放在headers中

import requests
#1.直接携带cookie请求URL地址
url="https://www.csdn.net/"
#cookie放在headers中
headers={"User-Agent":"Mozilla/5.0 (linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWEBKit/537.36 (Khtml, like Gecko) Chrome/66.0.3359.139 Mobile Safari/537.36",
         "Cookie": " cookies值"  }
response=requests.get(url,headers=headers)
with open('csdn1.html','w',encoding='utf-8') as f:
    f.write(response.content.decode())

 这样生成的csdn1.html文件打开就是你的csdn主页。

这里又有一个新的问题,就是我的cookie值在哪里找?

右键点击登录进去之后的页面,会出现以下形式,然后就可以找到cookie值。

  • 1.2cookie字典传给cookies参数

import requests
headers={"User-Agent":"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Mobile Safari/537.36"}
cookie= "cookie值"
#将cookie字符串形式转换为字典形式
cookie_dict = {i.split("=")[0]:i.split("=")[-1] for i in cookie.split(";")}
print(cookie_dict)
response=requests.get(url,headers=headers,cookies=cookie_dict)
with open('csdn2.html','w',encoding='utf-8') as f:
    f.write(response.content.decode())

2:先发送post请求,获取cookie,带上cookie请求登录后的页面


#步骤:
    #1):session=requests.session() session具有的方法和requests方法一样
    #2):session.post(url,data,headers)  服务器设置在本地的cookie会保存在session中
    #3):session.get(url) 会带上之前保存在session中的cookie

#携带cookie的请求地址
url="Https://www.csdn.net/"
#post请求的地址
post_url = "https://passport.csdn.net/account/verify"
#post时需要提交的数据
post_data = {"username":"18328068525","passWord":"CamYes123!"}
#实例化session
session = requests.session()
#使用session获取本地的cookie
session.post(post_url,data=post_data,headers=headers)
#再使用session请求登录后的页面
response=session.get(url,headers=headers)

with open('csdn3.html','w',encoding='utf-8') as f:
    f.write(response.content.decode())

在这里我们需要去寻找post_url。在登录界面中点击鼠标右键,得到以下界面,找到提交用户名和密码的fORM表单,其中的action值即为post_url

 

 这里又出现了一个问题。有些页面的form表单中并没有action这个属性,那么我们怎么找post_url?

我们需要进行抓包,找到Request Method为post的网址,分析一下是否为提交的网站。

 上面的csdn例子是跟着教程学习的,学习之后自己找了一个网址来练手,我找的是qq邮箱,发现qq邮箱中的form表单提交方式为get,不是post。然后用第一种方式来解决的。第二种方式针对form表单提交方式为post的网址。

 

--结束END--

本文标题: python模拟get/post请求登录

本文链接: https://lsjlt.com/news/190738.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python模拟get/post请求登录
    今天学习了python模拟登陆,然后自己进行一下总结,以csdn登录为例子,浏览器为Chrome 1:直接携带cookie请求url地址 1.1cookie放在headers中 import requests #1.直接携带cookie...
    99+
    2023-01-31
    python post
  • GET和POST的区别,java模拟postman发post请求
    目录 一、先说一下get和post1、看一下人畜无害的w3schools怎么说:2、问一下文心你言哥,轻轻松松给你一个标准答案:3、卧槽,懂了,好像又没懂 二、让我们扒下GET和POST的外衣,坦诚相见吧!三、我们的大BOS...
    99+
    2023-08-17
    SpringMVC Spring spring boot 原力计划
  • httpclient发送Get请求和Post请求
    创建HttpClient发送请求、接收响应 Get请求简介get无参数get有参数 Post请求简介post携带JSON参数post携带表单参数 postman自动生成OKhttp...
    99+
    2023-09-15
    java 服务器 servlet
  • postman模拟post请求的四种请求体
    目录1.application/x-www-form-urlencoded2.multipart/form-data3. raw4.binary1.application/x-www...
    99+
    2024-04-02
  • get和post请求的区别
    GET请求和POST请求是HTTP协议中常用的两种请求方式,它们在以下几个方面有所区别:1. 参数传递方式:- GET请求将参数包含...
    99+
    2023-09-21
    get
  • python中应用requests库模拟postman请求携带token,使用get和post方法请求头携带token
    背景: 实际开发中,Python程序中需要调用后台接口,充当前端,后端规定请求头需要携带token 封装的get和post类: class RequestMethodCarryJson: """ 定义请求类型 以json方...
    99+
    2023-09-04
    python postman requests token 请求头 get和post 以json和表单格式传递数据
  • Java 使用 HttpClient 发送 GET请求和 POST请求
    目录概述认证方式基础认证Auth用户名密码认证Bearer Token 认证配置超时生成 RequestConfig设置超时时间概述 日常工作中,我们经常会有发送 HTTP 网络请求...
    99+
    2024-04-02
  • get请求和 post请求的区别是什么
    GET请求和POST请求是HTTP协议中常用的两种请求方法,它们的区别如下:1. 参数传递方式:- GET请求:参数通过URL的查询...
    99+
    2023-09-22
    get
  • 解析HTTP请求报文(GET、POST)
    目的: 一个WEB服务器需要解析客户端(浏览器)发来的请求,两种常见的请求方式是GET和POST。 GET的请求格式: GET请求没有请求体只有请求头GET请求的请求参数放在URL后加上一个""的后面,参数以key=value的形式传递,参...
    99+
    2023-09-02
    http 网络协议 c++ mysql
  • python post请求
    python post请求 post请求有4中编码方式 1.application/x-www-form-urlencoded application/x-www-form-urlencoded是浏览...
    99+
    2023-09-03
    python django postman
  • Vue如何为GET或POST请求设置请求头
    目录为GET或POST请求设置请求头安装vue-cookiesvue项目设置请求头权限问题为GET或POST请求设置请求头 安装vue-cookies 就通过我写的一个小项目的登录来...
    99+
    2024-04-02
  • Vue怎么为GET或POST请求设置请求头
    这篇文章主要介绍了Vue怎么为GET或POST请求设置请求头的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue怎么为GET或POST请求设置请求头文章都会有所收获,下面我们一起来看看吧。为GET或POST请求...
    99+
    2023-06-29
  • get请求和post请求的区别(简洁易懂)
    一.GET和POST是什么 HTTP协议中的两种发送请求的方法,本质上都是在进行TCP连接. 二. GET请求和POST请求的区别是什么 GET请求参数是通过URL进行传递的,POST请求的参数包含在请求体当中。 GET请求比POST请求更...
    99+
    2023-08-31
    服务器 运维
  • Golang如何用表单请求模拟POST
    在Golang中,可以使用`net/http`包来模拟POST请求。以下是一个例子:```gopackage mainimport ...
    99+
    2023-08-19
    Golang
  • Node.js中怎么发起get/post请求
    Node.js中怎么发起get/post请求,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、get由于get请求的参数在ur...
    99+
    2024-04-02
  • C#发送Get、Post请求(带参数)
    目录Get请求Post请求Get请求 1.简单发送Get请求 /// <summary> /// 指定Url地址使用Get 方式获取全部字符串 /// </su...
    99+
    2024-04-02
  • nodejs中怎么实现get/post请求
    这篇文章给大家介绍nodejs中怎么实现get/post请求,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1.用form表单的方法:(1)get方法前端代码:<form ...
    99+
    2024-04-02
  • C#winform请求http的实现(get,post)
    目录一:.Net中有两个类 HttpWebRequest 和HttpWebResponse 类来实现Http的请求二: HTTP定义了与服务器交互的不同方法POST与GET的差异两个...
    99+
    2024-04-02
  • SpringMVC中怎么发送GET、POST请求
    SpringMVC中怎么发送GET、POST请求,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。我们知道发起 GET 请求和 POST 请求,只需要在表单的 form 标签中,设...
    99+
    2023-06-02
  • Node.js如何发起get和post请求
    这篇文章主要介绍了Node.js如何发起get和post请求的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Node.js如何发起get和post请求文章都会有所收获,下面我们一起来看看吧。1、get由于get请...
    99+
    2023-07-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作