> 백엔드 개발 > PHP 튜토리얼 > 实现免登录的方法有几种

实现免登录的方法有几种

PHPz
풀어 주다: 2020-09-04 13:49:19
원래의
10359명이 탐색했습니다.

实现免登录的方法有几种

怎么实现免登录?

有两种通过cookie实现免登录的方法,我将以登录B站并进入“动态”页面为例分别演示这两种方法。

方法1:通过配置Chrom的options来实现 

options.add_argument("--user-data-dir=C:/Users/Administrator/AppData/Local/Google/Chrome/User Data")
로그인 후 복사

这种方法实际上是直接读取本地电脑上的用户数据(包含了cookie,插件及收藏夹等等),以实现免登录效果,

代码为:

options = webdriver.ChromeOptions()
options.add_argument('--no-sandbox') #使用禁用沙箱命令解决chrome浏览器崩溃问题
options.add_argument("--user-data-dir=C:/Users/Administrator/AppData/Local/Google/Chrome/User Data") #用户数据目录
self.driver = webdriver.Chrome(options=options)
self.driver.get('https://t.bilibili.com/') #直接进入B站的“动态”页面
print(self.driver.get_cookies()) #可打印获取的cookies
self.driver.maximize_window()
time.sleep(3)
로그인 후 복사

这样可以实现效果,但很容易导致谷歌浏览器奔溃,也会比较慢(不知道啥原因),但至少实现了不是。

方法2:通过add_cookie实现,这种运行速度很快,但关键是要把cookies先弄到手。

self.driver = webdriver.Chrome()
#下面这个不能省,就是必须先让浏览器打开一个网页,至于打开哪个网页不重要,不然会报错:unable to set cookie
self.driver.get('https://t.bilibili.com/')  
cookies = [{'domain': '.bilibili.com', 'expiry': 1577689702.126078, 'httpOnly': False, 'name': 'sid', 'path': '/', 'secure': False, 'value': 'hrbxcwgk'},{'domain': '.t.bilibili.com', 'httpOnly': False, 'name': 'Hm_lpvt_8a6e55dbd2870f0f5bc9194cddf32a02', 'path': '/', 'secure': False, 'value': '1546160927'}] 
for cookie in cookies:
    self.driver.add_cookie(cookie)  #循环添加cookie
self.driver.get('https://t.bilibili.com/')
self.driver.maximize_window()
time.sleep(3)
로그인 후 복사

这样也实现了免登录,可是问题在于cookies怎么来的呢?

 企业微信截图_15924437828073.png

也可以通过第一种方法先登录并通过self.driver.get_cookies()将cookies打印出来,再copy过来。

更多相关技术文章,请访问PHP中文网

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿