当前位置:   article > 正文

php selenium cookie,selenium如何获取cookies,并实现使用cookies自动登录(一)

php selenium cookie

最近在研究一个新的知识,遇到了一个困难,就是selenium获取并使用cookies的技巧。刚开始百度了下,看了一些介绍,始终是不明白怎么回事,因为网上大部分是这样介绍的:

一、cookies的获取

1、手动获取

53309432bb4609ae5f5d85a93a9ee1cf.png

网上大部分都说是看上图,但是这就让我看不懂了啊,因为百度出来的selenium中cookies添加是这样的一种格式:

cookies=[{'domain': 'zhuxiaoedu.com', 'expiry': 1643699649, 'httpOnly': False, 'name': 'http304ok', 'path': '/', 'secure': False, 'value': '1'},

{'domain': 'zhuxiaoedu.com', 'expiry': 1612250045.383451, 'httpOnly': False, 'name': 'addinfo', 'path': '/', 'secure': False, 'value': '%7B%22chkadmin%22%3A1%2C%22chkarticle%22%3A1%2C%22levelname%22%3A%22%5Cu7ba1%5Cu7406%5Cu5458%22%2C%22userid%22%3A%221%22%2C%22useralias%22%3A%22admin%22%7D'},

{'domain': 'zhuxiaoedu.com', 'expiry': 1612250045.383406, 'httpOnly': True, 'name': 'token', 'path': '/', 'secure': False, 'value': '329f13591aa71a6d1757991608e3203244f0cd6819f5069f1b5580831ec10bb71612250054'},

{'domain': 'zhuxiaoedu.com', 'expiry': 1612250045.383317, 'httpOnly': False, 'name': 'username', 'path': '/', 'secure': False, 'value': 'admin'},

{'domain': 'zhuxiaoedu.com', 'httpOnly': False, 'name': 'timezone', 'path': '/', 'secure': False, 'value': '8'}]

对于新手来说,你知道自己想要的cookies该怎么搞吗,反正我是看不懂。

2、自动获取

网上大部分都是写了一段代码,获取cookies的代码,就是使用selenium中的get_cookies()方法获取。这个确实是一种比较好的方法,后面我搞懂了规则之后,才发现的。但是没搞懂之前,也很难看懂。我当时就在想,我就是不知道如何获取cookies才不能自动登录,你这样搞,我还不是不知道如何获取cookies。

二、明白后,我认为比较通俗易懂的说法

1、手动获取cookies

我们不要看headers里的内容,我们直接看cookies中的内容,这里就会根据格式一一对应相关内容了,如下图

630c3be16bc5660a60e36803c32af7cd.png

2、自动获取

自动获取也很简单,我们使用selenium控制浏览器,打开需要自动登录的网页,代码如下:from selenium import webdriver

from selenium.webdriver import ChromeOptions, FirefoxProfile

from fake_useragent import UserAgent

import random

import win32api

import time

from aip import AipNlp

import requests

import re

ua = UserAgent()

option = ChromeOptions()

userage = ua.chrome

# option.add_argument(('--proxy-server=' + ipports[0] + ':' + ipports[1]))

option.add_argument('user-agent=' + userage + '')

option.add_argument('disable-infobars')

option.add_experimental_option('excludeSwitches', ['enable-automation'])

option.add_experimental_option("useAutomationExtension", False)

browser = webdriver.Chrome(options=option, executable_path='chromedriver.exe')

# browser.get('http://**.com/')

# cookies=[{'domain': '**.com', 'expiry': 1643699649, 'httpOnly': False, 'name': 'http304ok', 'path': '/', 'secure': False, 'value': '1'},

#  {'domain': '**.com', 'expiry': 1612250045.383451, 'httpOnly': False, 'name': 'addinfo', 'path': '/', 'secure': False, 'value': '%7B%22chkadmin%22%3A1%2C%22chkarticle%22%3A1%2C%22levelname%22%3A%22%5Cu7ba1%5Cu7406%5Cu5458%22%2C%22userid%22%3A%221%22%2C%22useralias%22%3A%22admin%22%7D'},

#  {'domain': '**.com', 'expiry': 1612250045.383406, 'httpOnly': True, 'name': 'token', 'path': '/', 'secure': False, 'value': '329f13591aa71a6d1757991608e3203244f0cd6819f5069f1b5580831ec10bb71612250054'},

#  {'domain': 'z**u.com', 'expiry': 1612250045.383317, 'httpOnly': False, 'name': 'username', 'path': '/', 'secure': False, 'value': 'admin'},

#  {'domain': '**.com', 'httpOnly': False, 'name': 'timezone', 'path': '/', 'secure': False, 'value': '8'}]

#

#

#

# for cookie in cookies:

#     browser.add_cookie(cookie)

#

# browser.get('http://**/zb_system/admin/index.php?act=admin')

# 登录地址

browser.get('http://**/zb_system/login.php')

# 打开登录链接后,我们手动登录,然后再获取cookies,这样就是登录后的cookies了。

time.sleep(25)

print(browser.get_cookies())

不管是手动获取还是自动获取,都需要我们手动登录账号,但是自动获取方便很多,自动把格式和需要的东西都下载下来了,不需要我们再一一去设置,耗费时间。

当然,这里也有不适用的地方,就是打开网页后,如果会自动跳出来登录框,好像就不能够用了,关于这个,下次再分享。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/384324
推荐阅读
相关标签
  

闽ICP备14008679号