iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Pythonselenium+cookie实现免密登陆的示例代码
  • 825
分享到

Pythonselenium+cookie实现免密登陆的示例代码

2024-04-02 19:04:59 825人浏览 泡泡鱼

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

摘要

目录获取cookies:携带cookies实现免密登陆:今天爬取airbnb的租房数据时,遇到了登陆问题。自己动手解决了一下。 我们知道,Http是无状态的,那么网页如何实现用户登陆

今天爬取airbnb的租房数据时,遇到了登陆问题。自己动手解决了一下。

我们知道,Http是无状态的,那么网页如何实现用户登陆注册功能呢?Session和Cookie就是为了满足这种需求出现的技术。

首先介绍一下Session和Cookie的概念。

WEB中Session对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web页时,如果该用户还没有会话,则Web服务器将自动创建一个 Session对象。当会话过期或被放弃后,服务器将终止该会话。

Cookie,有时也用其复数形式 Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息。

当用户第一次访问某个网页时,服务器会创建一个Session对象,用于存储与该用户会话的属性以及配置信息,并且返回一个带有set-cookie字段的响应头给客户端,客户端浏览器会把cookie保存到本地,下一次访问该网页时,会加上cookie。服务器通过cookie辨认是否有用户的Session。这样就实现了用户的登陆注册功能,但是Session和Cookie的应用远不及此,这里不再赘述。

那么为了实现免密登陆,我们需要做如下几件事情:

获取登陆airbnb时客户端浏览器存储的cookies。

把cookies写入本地。

下次用selenium登陆airbnb时,把cookies带上。

获取cookies:

使用selenium的get_cookies()函数来获取cookies。

但是如何实现登陆呢?总得要先登陆了,才能有cookies吧?可以在代码中加一段休眠时间,在休眠时间我们手动完成登陆,休眠过后,再让代码记录cookies即可。

import time
 
from msedge.selenium_tools import Edge, EdgeOptions
import chardet
 
 
# 返回一个driver对象
def activate_selenium_driver():
    options = EdgeOptions()
    # options.use_chromium = True
    options.add_experimental_option('excludeSwitches', ['enable-automation'])
    options.binary_location = r"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"  # 浏览器的位置
    driver = Edge(options=options, executable_path=r"D:\ERic\WORK\python\Spider\msedgedriver.exe")  # 相应的浏览器的驱动位置
    return driver
 
 
def check_charset(file_path):
    with open(file_path, "rb") as f:
        data = f.read(4)
        charset = chardet.detect(data)['encoding']
    return charset
 
baseurl = 'https://www.airbnb.cn/s/%E6%B7%B1%E5%9C%B3/homes?refinement_paths%5B%5D=%2Fhomes&current_tab_id=home_tab&selected_tab_id=home_tab&screen_size=large&hide_dates_and_guests_filters=false&place_id=ChIJkVLh0Aj0AzQRyYCStw1V7v0&map_toggle=false'
driver = activate_selenium_driver()
driver.get(baseurl)
 
# 20秒的休眠时间以手动完成登陆
for i in range(0, 20):
    print(20 - i)
    time.sleep(1)
 
# 获取cookies
cookies = driver.get_cookies()
 
# 保存到本地
with open('cookies.txt', 'w', encoding=check_charset('cookies.txt')) as f:
    for i in cookies:
        f.write(str(i))
        f.write('\n')

携带cookies实现免密登陆:

baseurl = 'https://www.airbnb.cn/s/%E6%B7%B1%E5%9C%B3/homes?refinement_paths%5B%5D=%2Fhomes&current_tab_id=home_tab&selected_tab_id=home_tab&screen_size=large&hide_dates_and_guests_filters=false&place_id=ChIJkVLh0Aj0AzQRyYCStw1V7v0&map_toggle=false'
driver.get(baseurl)
cookies = []
with open('cookies.txt', 'r', encoding=funcs.funcs.check_charset('cookies.txt')) as f:
    for i in f:
        cookies.append(eval(i.strip()))
 
for i in cookies:
    driver.add_cookie(i)
 
time.sleep(3)
driver.refresh()

再次打开Airbnb时,发现已经是登陆状态,大功告成辣。

 到此这篇关于Python selenium+cookie实现免密登陆的示例代码的文章就介绍到这了,更多相关selenium cookie免密登陆内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Pythonselenium+cookie实现免密登陆的示例代码

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Pythonselenium+cookie实现免密登陆的示例代码
    目录获取cookies:携带cookies实现免密登陆:今天爬取airbnb的租房数据时,遇到了登陆问题。自己动手解决了一下。 我们知道,http是无状态的,那么网页如何实现用户登陆...
    99+
    2022-11-13
  • python+selenium 实现扫码免密登录示例代码
    目录一、需求描述二、首先扫码登录获取cookies保存到本地未后面免密登录做准备三、初始化浏览器四、获取本地保存的cookies实现登录一、需求描述 web 自动化测试/python...
    99+
    2022-11-11
  • VueelementUI实现免密登陆与号码绑定功能
    目录前言登录功能绑定/解绑功能获取用户信息功能获取用户信息功能最终效果项目地址前言 前端代码的框架采用vue.js + elementUI 这套较为简单的方式实现,以及typescr...
    99+
    2022-11-13
    Vue elementUI免密登陆 Vue elementUI号码绑定
  • 利用Selenium添加cookie实现自动登录的示例代码(fofa)
    介绍 Selenium可以模拟浏览器进行自动化操作,但一些网站需要进行登录才能进行一些操作,比起输入账号密码,cookie是更加方便的。而且fofa首先登录邮箱账号时获得的cooki...
    99+
    2022-11-12
  • JavaWeb 中Cookie实现记住密码的功能示例
    本文主要内容:•1、什么是Cookie•2、Cookie带来的好处•3、Cookie的主要方法 一、什么是Cookiecookie是一种WEB服务器通过浏览器在访问者的硬盘上存储信息的手段。Co...
    99+
    2023-05-31
    java web cookie
  • node.js平台下利用cookie实现记住密码登陆(Express+Ejs+Mysql)
    此内容需有node.js+express+mysql入门基础,若基础薄弱,可参考博主的其他几篇node.js博文: 1.下载Mysql数据库,安装并配置。创建用户表供登录使用: 2.node.js平台下E...
    99+
    2022-06-04
    密码 平台 node
  • python实现希尔密码加密的示例代码
    目录原理实现原理 希尔密码是运用基本矩阵论原理的替换密码,由Lester S. Hill在1929年发明。 每个字母当作26进制数字:A=0, B=1, C=2… 一串字母当成n维向量,跟一个n×n的矩阵相乘,再将得...
    99+
    2022-06-02
    python 希尔密码加密 python 希尔密码
  • SpringBoot实现扫码登录的示例代码
    目录一、首先咱们需要一张表二、角色都有哪些三、接口都需要哪些?四、步骤五、疯狂贴代码Spring Boot中操作WebSocket最近有个项目涉及到websocket实现扫码登录,看...
    99+
    2022-11-13
  • php怎么实现修改登录密码功能?(代码示例)
    在网站开发中,用户账号系统是必不可少的一部分,而安全性是其核心之一。为了保障用户的账号安全,提供修改登录密码的功能是非常必要的。实现这一功能需要编写一些代码,下面我们来了解一下如何编写修改登录密码的 PHP 代码。首先,我们需要建立一个修改...
    99+
    2023-05-14
  • python实现凯撒密码加密解密的示例代码
    凯撒加密就是通过将字母移动一定的位数来实现加密和解密。明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移,被替换成密文。例如,当偏移量是2的时候,所有的字母B将被替换...
    99+
    2022-11-11
  • SpringBoot实现token登录的示例代码
    为什么引入token机制 在进行登录验证时,我们需要session或cookie会话进行验证,客户端包括浏览器、app、微信小程序、公众号,只有浏览器有session和cookie机...
    99+
    2022-11-13
  • SpringBoot实现api加密的示例代码
    目录SpringBoot的API加密对接项目介绍什么是RSA加密加密实战实战准备真刀真枪解密实战实战准备真刀真枪总结项目坑点SpringBoot的API加密对接 在项目中,为了保证数...
    99+
    2022-11-12
  • Android实现简易登陆注册逻辑的实例代码
    大家好,今天给大家带来Android制作登录和注册功能的实现,当我们面临制作登录和注册功能的实现时,我们需要先设计登录界面的布局和注册界面的布局,做到有完整的思路时才开始实现其功能效...
    99+
    2022-11-12
  • Golang实现AES加密和解密的示例代码
    目录对称加密 AES 算法加解密文件加密解密说明对称加密 AES 算法 (Advanced Encryption Standard ,AES) 优点 算法公开、计算量小、加密速度快、...
    99+
    2022-11-13
  • Django实现简单登录的示例代码
    目录创建django项目使用模型的url.py加载静态文件页面跳转创建数据库模型提交表单提交ajax提交创建django项目 创建项目的命令行语句: django-admin st...
    99+
    2022-11-12
  • React实现登录表单的示例代码
    作为一个Vue用户,是时候扩展一下React了,从引入antd、配置less、router,终于实现了一个简单的登录表单。 代码如下: import React from 'r...
    99+
    2022-11-12
  • Android实现微信登录的示例代码
    目录一、布局界面二、MainActivity.java微信登录的实现与qq登录类似。不过微信登录比较麻烦,需要拿到开发者资质认证,花300块钱,然后应用的话还得有官网之类的,就是比较...
    99+
    2022-11-12
  • Redis实现登录注册的示例代码
    目录1. 引言2. 流程图及代码实现2.1 生成验证码保存到Redis2.2 登录验证2.3 请求拦截器3. 总结1. 引言 在传统的项目中,用户登录成功,将用户信息保存在sessi...
    99+
    2022-11-13
  • jquery 实现密码框的显示与隐藏示例代码
    复制代码 代码如下: <html> <head> <script type="text/javascript" src="jquery-1.5.1.mi...
    99+
    2022-11-15
    jquery 密码框显示隐藏
  • Java微信授权登陆的实现示例
    前提: 微信公众平台:注册微信认证的公众号也就是服务号 ,拥有跟高级权限的微信接口。(注册服务号需要一些企业信息,需自己或者公司解决) 注: 2018年12月起 订阅号不能认证升级为...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作