python requests cookie登录_Python3.6下的Requests登录及利用Cookies登录

本文介绍了如何使用Python3的Requests模块进行POST登录和利用Cookies直接登录网站。首先通过POST方法发送用户名、密码和验证码,然后获取登录后的Cookies,以此实现免验证码登录。详细展示了代码实现过程。
摘要由CSDN通过智能技术生成

利用Python中的Requests模块可以实现Post,Get等发送功能,我以登录某网站为例,记录使用Post发送用户名、密码及图形验证码,以及通过Cookies直接登录的内容。

1.利用POST发送用户名、密码及验证码。这里的验证码没有进行识别,只好先读取验证验图片,手动输入。

def LoginByPost():

imgUrl='http://***/authcode.php'

s=requests.session()

res=s.get(imgUrl,stream=True)

im=Image.open(BytesIO(res.content))

im.show()

code=input()

loginUrl='http://***/admin_loginCheck.php'

postData={'pname':'admin','password':'***','validateCode':code}

rs=s.post(loginUrl,postData)

11 url='http://***/***/admin_honor.php'

res=s.get(url)

13 res.encoding='utf-8'

14 print(res.text)

此时,可以看出我们已经成功登录,并输出指定页面的内容。

2.利用Cookies直接登录。无需用户名、密码及验证码。此时,需要先获得登录该网站后的Cookies,一种方法是通过浏览器查看Cookies,另一种方法是利用上面的requests.session获取登录后的Cookies。我们采用第二种方式。

(1)通过requests.session获取Cookies。

def GetCookie():

imgUrl='http://***/authcode.php'

s=requests.session()

print(s.cookies.get_dict())#先打印一下,此时一般应该是空的。

res=s.get(imgUrl,stream=True)

im=Image.open(BytesIO(res.content))

im.show()

code=input()

loginUrl='http://***/admin_loginCheck.php'

postData={'pname':'admin','password':'***','validateCode':code}

rs=s.post(loginUrl,postData)

c=requests.cookies.RequestsCookieJar()#利用RequestsCookieJar获取

c.set('cookie-name','cookie-value')

s.cookies.update(c)

print(s.cookies.get_dict())

(2)利用上面获取的Cookies直接登录

def DirLogin():

s=requests.session()

url='http://***/***/admin_honor.php'

headers={

'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',

'Accept-Encoding': 'gzip, deflate',

'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',

'Cache-Control': 'max-age=0',

'Connection': 'keep-alive',

'Host': '***',

'Referer': 'http://***/***/admin_index.php'

}

cookies={'PHPSESSID': 'cnguud4r1hmn3passs906odp21'}#这里就是利用上面的函数获得的Cookies

rs=s.get(url,headers=headers,cookies=cookies,verify=False)

rs.encoding='utf-8'

print(rs.text)

此时,可以直接查看所需要页面的内容。

说明:然并卵,你会发现,通过Cookies直接登录,有时好用,有时无用。原因在于此网站是通过服务器的Session对客户进行判断,而Session在服务器端往往会设置会话期限,如果到了时间,服务器会把这个Session删除,这时,你还得再次利用第一个函数进行Cookie的获取。

UI自动化之cookies登录

现在有很多网站有验证码,跳过验证码实现登录可以使用cookies登录 目录 1.webdriver的添加cookies的方法 2.举个栗子 1.webdriver的添加cookies的方法 webdr ...

python3下应用requests

模拟浏览器请求有两种,一种是不需要用户登录或者验证的请求,一种是需要用户登录或者验证的请求 那么我们先来说说不需要用户登录的方法 这种方式直接可以获取源码,用get的请求方式 登录的方式 获取这种页面 ...

python3控制路由器--使用requests重启极路由.py

代码写了相应的注释,以后再写成可以方便调用的模块. 用fiddler抓包可以看到很多HTTP头,经过尝试发现不是都必须的. 'Upgrade-Insecure-Requests':1,#必要项,值为1 ...

利用cookies+requests包登陆微博,使用xpath抓取目标用户的用户信息、微博以及对应评论

本文目的:介绍如何抓取微博内容,利用requests包+cookies实现登陆微博,lxml包的xpath语法解析网页,抓取目标内容. 所需python包:requests.lxml 皆使用pip安装 ...

python3好用的requests库

python3好用的requests库 requests是什么? requests是基于urllib编写的http库,支持python3,比urllib更好用,更简单.之前使用python写一些htt ...

Requests方法 -- cookie绕过验证码登录操作

前言有些登录的接口会有验证码:短信验证码,图形验证码等,这种登录的话验证码参数可以从后台获取的(或者查数据库最直接).获取不到也没关系,可以通过添加 cookie 的方式绕过验证码. 1.这里以登录博 ...

requests请求库练习--GitHub登录

# coding = utf-8 """ 结合抓包工具,采用两种方法模拟登录github直接利用session登录和利用requests登录 ""&q ...

Centos6.6下安装MariaDB步骤,利用yum进行安装 第二篇

一.安装过程参考的相关文章: Centos 使用YUM安装MariaDB CentOS安装并设置MariaDB CentOS用yum安装.配置MariaDB MariaDB远程连接配置 ERROR 1 ...

centos7 python3.5 下安装paramiko

centos7 python3.5 下安装paramiko 安装开发包 yum install openssl openssl-devel python-dev -y 安装pip前需要前置安装setu ...

随机推荐

Java基础知识笔记(一:修饰词、向量、哈希表)

一.Java语言的特点(养成经常查看Java在线帮助文档的习惯) (1)简单性:Java语言是在C和C++计算机语言的基础上进行简化和改进的一种新型计算机语言.它去掉了C和C++最难正确应用的指针和最 ...

TypeScript Function(函数)

在JavaScript中,函数是构成任何应用程序的基础块.通过函数,你得以实现建立抽象层.模仿类.信息隐藏和模块化.在TypeScript中,虽然已经存在类和模块化,但是函数依旧在如何去"处 ...

Nico Game Studio 3.地图纹理编辑 物体皮肤编辑

完成功能: 1.地图纹理编辑功能. 图层编辑,添加/删除纹理,地图编辑.网格绘制.

你是否听过 TypeScript?

Type入门(JavaScript的超集)-译   你是否听过 TypeScript? TypeScript 是 JavaScript 的超集,TypeScript结合了类型检查和静态分析,显式接口. ...

ORACLE Postgresql中文排序

当我们order排序不能够实现我们想要的内容时候,尝试一下NLSSORT这个函数吧 他不仅仅按照姓氏排序,名也会排序: nls_param用于指定语言特征,格式为nls_sort      = sor ...

【Unity技巧】自定义消息框(弹出框)

写在前面 这一篇我个人认为还是很常用的,一开始也是实习的时候学到的,所以我觉得实习真的是一个快速学习工程技巧的途径. 提醒:这篇教程比较复杂,如果你不熟悉NGUI.iTween.C#的回调函数机制,那 ...

纯CSS+HTML实现checkbox的思路与实例

checkbox应该是一个比较常用的html功能了,不过浏览器自带的checkbox往往样式不怎么好看,而且不同浏览器效果也不一样.出于美化和统一视觉效果的需求,checkbox的自定义就被提出来了. ...

Halcon算子学习

* dev前缀的算子表示开发编译器相关的函数 dev_update_window ('off')//halcon编辑器图形输出界面参数是否都更新,off表示手动,on表示全部更新 dev_close_ ...

spring BeanUtils 工具实现对象之间的copy

一般我们会开发中会遇到返回用户信息的时候,不需要返回密码或者其他参数,这时候我们需要重新定义一个VO类去除不需要的参数,将原对象copy到VO类中 使用spring的BeanUtils可以实现对象的c ...

Android设计中的.9.png图片

.9.png是一种能够自己定义拉伸特定区域的图片格式. 简书:Android设计中的.9.png图片 在Android的UI设计开发中,非常多控件须要适配不同的手机分辨率进行拉伸或者压缩,这样就出现了 ...

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python模拟登录通常使用requests库来实现,以下是三种常见的方式: 1. 基于session的登录方式 ```python import requests # 创建session对象 s = requests.Session() # 登录接口 login_url = "http://example.com/login" # 请求参数 data = { "username": "your_username", "password": "your_password" } # 登录 s.post(login_url, data=data) # 访问需要登录才能访问的页面 response = s.get("http://example.com/profile") ``` 2. 基于cookie登录方式 ```python import requests # 登录接口 login_url = "http://example.com/login" # 请求参数 data = { "username": "your_username", "password": "your_password" } # 登录 response = requests.post(login_url, data=data) # 获取cookie cookie_dict = response.cookies.get_dict() # 使用cookie访问需要登录才能访问的页面 response = requests.get("http://example.com/profile", cookies=cookie_dict) ``` 3. 基于token的登录方式 ```python import requests # 登录接口 login_url = "http://example.com/login" # 请求参数 data = { "username": "your_username", "password": "your_password" } # 登录 response = requests.post(login_url, data=data) # 获取token token = response.json().get("token") # 设置header中的Authorization字段 headers = { "Authorization": f"Bearer {token}" } # 使用token访问需要登录才能访问的页面 response = requests.get("http://example.com/profile", headers=headers) ``` 以上三种方式都可以实现模拟登录,具体使用哪种方式取决于登录接口的实现方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值