selenium获取cookie(使用selenium获取HSESSION(JSESSION))

本文目录
- 使用selenium获取HSESSION(JSESSION)
- selenium:python如何绕过登录页面登录网页
- selenium 怎么通过cookies登录
- python+seleniu如何记录cookies
- python+selenium 到底怎么注入cookie呀
- Python使用selenium库为driver添加cookie信息的一些坑
- 关于用python写的登陆程序,怎么获取cookie值并返回出来
- selenium跳转传递cookie
- python爬虫登录知乎后怎样爬取数据
使用selenium获取HSESSION(JSESSION)
首先,并不是说你一打开一个页面就会产生一个session。
所谓session你可以这样理解:当你与服务端进行会话时,比如说登陆成功后,服务端会为你开壁一块内存区间,用以存放你这次会话的一些内容,比如说用户名之类的。那么就需要一个东西来标志这个内存区间是你的而不是别人的,这个东西就是 session id ( jsessionid 只是tomcat中对session id的叫法,在其它容器里面,不一定就是叫jsessionid了。),而这个内存区间你可以理解为session。
然后,服务器会将这个session id发回给你的浏览器,放入你的浏览器的cookies中(这个cookies是内存cookies,跟一般的不一样,它会随着浏览器的关闭而消失)
’’’
options = webdriver.ChromeOptions()
options.add_argument(’--headless’) # 可以使用无头模式
driver = webdriver.Chrome(executable_path=CHROME_DRIVER_PATH, chrome_options=options)
driver.get(URL) # 打开一个地址
cookie = driver.get_cookies() #获取所有cookie列表
hsession = cookie
’’’
在Chrome的开发者工具的application/cookie里面可以查到你要访问的session
【招聘】顺丰科技
测试工程师( 薪资15-25k)
岗位描述
selenium:python如何绕过登录页面登录网页
使用场景
在面对需要账号密码登录的网页时,可以通过定位输入框,使用send_keys
输入账号密码登录。
但是在面对某些无法通过页面直接登录的场景,比如需要微信或者软件扫码、验证码等才能进入页面的情况时,就可以通过cookie进行登录。
本文主要介绍通过记录上一次登录网页的cookie,在cookie生效期间直接绕过登录页面直接进入系统的登录方式。
登录页面后获取登录的cookie
读取之前存入的cookie
这样只要记录的cookie生效,那么就可以不用每次进入系统时都需要在登录页面登录啦~
selenium 怎么通过cookies登录
您好,很高兴能帮助您那么使用动态密码或验证码的网站我们就无法自动化测试了么?答案是不一定,因为有些网站登陆后会在cookie中写入当前用户的登录态,于是只要登陆一次该站点,那么下次访问的时候就不需要再登陆了。因此我们需要让浏览器为我们保存cookie以使得我们可以不需要登陆站点就能进行自动化测试。但是selenium或watirwebdriver默认启动的时候是没有加载已存在cookie的。其实这个问题的解决方法非常简单。Watir::Browser.new(:firefox,{:profile=》’default’})#watirwebdriverSelenium::WebDriver.for(:firefox,:profile=》’default’)#selenium2在启动浏览器的时候加上defaultprofile就能解决这个问题了。你的采纳是我前进的动力,记得好评和采纳,答题不易,互相帮助,
python+seleniu如何记录cookies
都是英语,我一个也不懂。
英文不好英文不好这个给你理解不了
如果做记录的话,一定要有特别敏捷的思维才能记录。
python+selenium 到底怎么注入cookie呀
1. 下载、安装selenium
***隐藏网址***
目前的版本是:3.0.0b2
支持:Firefox, Chrome, Internet Explorer, PhantomJS
tar包的下载:selenium-3.0.0b2.tar.gz
解压selenium-3.0.0b2.tar.gz,进入selenium-3.0.0b2目录,执行下面的命令安装:
python setup.py install
2. 下载浏览器Driver Server
Internet Explorer Driver Server
IEDriverServer_Win32_2.53.1.zip
IEDriverServer_x64_2.53.1.zip
如果下载不了,可以到IEDriverServer_Win32_2.53.1.zip,IEDriverServer_x64_2.53.1.zip中下载。Firefox geckodriver
geckodriver-v0.10.0-linux64.tar.gz
geckodriver-v0.10.0-win64.zip
geckodriver的其他版本其他浏览器的driver server
- ***隐藏网址***
- ***隐藏网址***
- ***隐藏网址***
- ***隐藏网址***
- import timefrom selenium import webdriverfrom selenium.common.exceptions import WebDriverExceptiondef GetCookie():
- ***隐藏网址***
- cookies = try:
- print(’open IE browser’)
- ie = webdriver.Ie()
- print(’visit cnvd website’)
- ie.get(url)
- timesleep = 8 #需要延时,来获取完整的cookies
- print(’sleep {} seconds’.format(timesleep))
- time.sleep(timesleep) # important to get full cookies
- except WebDriverException as wde:
- print(wde) if ie != None:
- ie.quit() else:
- print(’get cookies...’)
- cookies = ie.get_cookies()
- ie.quit() if cookies == ’’ or type(cookies) != list or cookies.__len__() == 0:
- print(’cookie is not found’) else:
- print(’cookies: {}, size: {}’.format(cookies, cookies.__len__()))
- GetCookie()123456789101112131415161718192021222324252627282930
- $ python3 get_cookie.py
- open IE browser
- visit cnvd website
- sleep 8 seconds
- ***隐藏网址***
解压,并将解压目录添加到环境变量中。
注意1:在windows 64位系统也要使用IEDriverServer Win32版本的,否则可能会出现错误In particular, be sure you are not attempting to use a 64-bit IEDriverServer.exe against IE 10 or 11, even on 64-bit Windows.
注意2:geckodriver不能在cygwin中使用。IEDriverServer在windows和cygwin环境中都可以使用。
注意3: 关于geckodriver的说明: 早期名字叫wires,如果提示wires找不到,可以将geckodriver重命名为wires。
3. 示例
3. 1 示例一:通过IE获取cookie
在python命令行中执行:
如果你的IE浏览器页面的放大率不是100%,则会有如下错误:
selenium.common.exceptions.WebDriverException: Message: Unexpected error launching Internet Explorer. Browser zoom level was set to 130%. It should be set to 100%
解决方法:点击浏览器右下角的“更改缩放级别”,改为100%
3.2 示例二:通过Firefox获取cookie
在cygwin中执行firefox = webdriver.Firefox(),会有错误:
selenium.common.exceptions.WebDriverException: Message: entity not found,
在windows环境执行中不会有问题。
3.3 示例三:python脚本
get_cookie.py
输出Log:
可能出现的问题:
问题1:selenium.common.exceptions.NoSuchWindowException: Message: Unable to get browser
问题2:selenium.common.exceptions.WebDriverException: Message: Unexpected error launching Internet Explorer. Protected Mode settings are not the same for all zones. Enable Protected Mode must be set to the same value (enabled or disabled) for all zones.
解决方法1:Internet选项-》安全-》“Internet”,“本地Intranet”,“受信任的站点”,“受限制的站点”的“启用保护模式”需要设置成一样的。都设置成选中状态,可以解决。或者试试都设置成非选中状态。
解决方法2:在上面的解决方法用过之后,在windows中可能还会有问题Unable to get browser,可以尝试着以管理员权限打开cmd,也许会有惊喜。
Python使用selenium库为driver添加cookie信息的一些坑
也许你在浏览一些网页的时候会遇到这种情况,有的网页的内容会设置为登录可见。
如果想要用driver去驱动浏览器浏览隐藏内容的话,就需要事先给它添加cookie信息,这几天使用的时候遇到了一些坑,简单说明下。
首先,我们先创建一个driver:
创建出来的driver专门有一个添加cookie信息的方法 driver.add_cookie() ,他接受的参数是一个字典。回到本文正题,下面说说坑。
add_cookie() 方法接受的字典参数的键名不是随意起的。
不能想当然地分解获取到内容的等号左右的信息。他的键名都是有意义的,一般记住 name 和 value 即可,分别代表cookie的名称和动态生成的值。
确保获取到的cookie内容是有效的。
举个栗子,这是我在登陆某网站后看到的cookie内容:
当然,不知道的话也可以多尝试,但如果你是第一次使用 add_cookie() 方法,建议你一定要在尝试前先看看坑三!
当你高高兴兴地进入目标网址,并想给driver添加好cookie信息:
它可能会报错,注意,这里说的是可能。
如果你遇到了类似 Message: unable to set cookie 的错误,建议使用更稳妥的方式:
就是说,在登录页面添加cookie信息,然后再访问目标网址。
如有错误,欢迎指正~
关于用python写的登陆程序,怎么获取cookie值并返回出来
两种方式:
一、
接口,可以pip install requests模块,安装一个requests,对接口支持简单好用
例子,写一个getcookie()方法
import requests
def getcookie():
data={’username’:username,’password’:pwd}
session=requests.session()
***隐藏网址***
#具体要接口登录后才可以获得cookies
result=session.post(loginurl,data=data)
cookies=requests.utils.dict_from_cookiejar(session.cookies)
return cookies
二、
UI自动化登录:可以easy_install -U selenium,安装selenium模块,支持UI自动化,模拟前端,用户名、密码登录后,这种方式也可以获得cookie
一个例子,登录csdn,并且获取cookie,用户名和密码我隐去了,可以参考。
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import selenium
import os,time
import sys
sys.path.append("..")
import web
import datetime
#默认得安装一个火狐浏览器
class webconn:
def __init__(self,drivertype):
self.drivertype=drivertype
def web_conn(self):
PASS=0
FAIL=0
get_cookie={}
t=datetime.datetime.now()
starttime=datetime.datetime.now()
driver = webdriver.Firefox()
try:
***隐藏网址***
time.sleep(2)
assert u’帐号登录’ in driver.title
driver.find_element_by_id("username").send_keys(u"yoursername")
print "输入用户名"
driver.find_element_by_id("password").send_keys(u"yourpassword")
print "输入密码"
driver.find_element_by_class_name("logging").click()
time.sleep(2)
assert u’全球最大中文’ in driver.title
driver.add_cookie({’name’:’key-aaaaaa’,’value’:’value-bbbb’})
for cookie in driver.get_cookies():
print "%s -》 %s" %(cookie)
get_cookie.encode("UTF-8")
print "cookie cookie cookie cookie cookie"
print get_cookie
PASS=PASS+1
except Exception,e:
print(str(Exception)+":"+str(e))
FAIL=FAIL+1
finally:
driver.close()
driver.quit()
endtime=datetime.datetime.now()
totaltime=endtime-starttime
usetime=str(endtime-starttime)
hour=usetime.split(’:’).pop(0)
minute=usetime.split(’:’).pop(1)
second=usetime.split(’:’).pop(2)
totaltime=float(hour)*60*60+float(minute)*60+float(second)
totaltime=str(totaltime)+"s"
return get_cookie
selenium跳转传递cookie
通过selenium提取的cookie转换一下格式就可以直接调用 python新人 。
selenium的模拟浏览器功能虽然强大,但是慢,而且多开容易崩溃。所以用模拟登陆取得cookie,然后传递给requests。requests带cookies访问站点受限较少。
selenium---快速跳转到指定元素 web自动化中经常遇到页面元素没有在视图范围内,需要通过滚动条才能让其出现。
python爬虫登录知乎后怎样爬取数据
模拟登录
很多网站,比如知乎、微博、豆瓣,都需要登录之后,才能浏览某些内容。所以想要爬取这类网站,必须先模拟登录。比较简单的方式是利用这个网站的 cookie。cookie 相当于是一个密码箱,里面储存了用户在该网站的基本信息。在一次登录之后,网站会记住你的信息,把它放到cookie里,方便下次自动登录。所以,要爬取这类网站的策略是:先进行一次手动登录,获取cookie,然后再次登录时,调用上一次登录得到的cookie,实现自动登录。
动态爬取
在爬取知乎某个问题的时候,需要将滑动鼠标滚轮到底部,以显示新的回答。静态的爬取方法无法做到这一点,可以引入selenium库来解决这一问题。selenium库模拟人浏览网站、进行操作,简单易懂。

更多文章:
在from子句中可以出现(如何在from 子句中嵌套查询下面的语句在access中出错!)
2026年10月11日 05:20
countif函数统计个数怎么用(countif函数怎么用 详解Excel中countif函数的使用方法)
2026年10月11日 03:30
正则匹配数字之前的字符(正则表达式如何匹配前面是数字、中间是“/”、后面也是数字,就像2/3专业的模式)
2026年10月11日 03:00







