吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1478|回复: 9
上一主题 下一主题
收起左侧

[求助] python关于Cookie有效期怎么保持

[复制链接]
跳转到指定楼层
楼主
Glenn 发表于 2023-2-20 14:58 回帖奖励
某网站的COOKIE有效期为 浏览器会话结束时,我在python中如果已经获取到了有效cookie,怎么让该cookie有效期一直保持下去。包括我把软件挂在那里几个小时不动。用request 的哪个方法可以解决? 我现在是用的方法时创建一个线程,每10分钟用获取到的cookie去请求一次网站主页。感觉有点low

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

沙发
wkdxz 发表于 2023-2-20 15:11
requests session有类似的作用,之前我遇到过类似的问题,是这么解决的。你可以试试

[Python] 纯文本查看 复制代码
import requests

import time

mycookie = { "PHPSESSID":"56v9clgo1kdfo3q5q8ck0aaaaa" }

x = requests.session()

x.get("http://127.0.0.1:80",cookies = mycookie)

time.sleep(5)

x.get("http://127.0.0.1:80")


来源:https://www.jianshu.com/p/264955856e61
3#
 楼主| Glenn 发表于 2023-2-20 15:14 |楼主
wkdxz 发表于 2023-2-20 15:11
requests session有类似的作用,之前我遇到过类似的问题,是这么解决的。你可以试试

[mw_shl_code=pytho ...

我在线程A中获取到了COOKIE, 几个小时后在线程B用这个cookie。如果线程A已经终止了,线程A用session获取的cookie 能维持到线程B使用嘛
4#
 楼主| Glenn 发表于 2023-2-20 15:17 |楼主
如果有多个网站有不同的sessionID 是不是需要创建多个session 放在线程中保持?还是说session实例化并添加cookie请求过之后。即使线程终止了。session还能一直保持会话呀?
5#
XyD3 发表于 2023-2-20 15:33
session保不保持不是服务端那边决定的吗?  如果cookie里没告诉你多久过期就只能预估来更新  告诉你的话  就快过期的时候再去申请一次呗   具体什么请求   需要针对网站具体分析啊。有效期持续到浏览器会话结束  大概率是cookie被清了吧
头像被屏蔽
6#
saszznz 发表于 2023-2-20 16:08
提示: 作者被禁止或删除 内容自动屏蔽
7#
cnwutianhao 发表于 2023-2-20 16:09
本帖最后由 cnwutianhao 于 2023-2-20 16:10 编辑

如果某网站的Cookie有效期为浏览器会话结束时,那么在Python中发送HTTP请求时,如果没有设置Cookie的过期时间,那么这个Cookie也只会在浏览器会话结束前有效。

如果你想让该Cookie一直保持下去,可以在Python中手动设置Cookie的过期时间,将其设置为未来的一个时间点,以确保该Cookie在该时间点之前一直有效。

在使用requests库发送HTTP请求时,你可以将Cookie的过期时间设置为当前时间加上一个足够长的时间段,比如10天,示例如下:
import requests
import datetime

cookie = {'name': 'value', 'expires': datetime.datetime.now() + datetime.timedelta(days=10)}
response = requests.get('http://example.com', cookies=cookie)

这样设置之后,该Cookie将在当前时间的10天后过期。你可以根据需要将该时间段调整为合适的值。

另外,如果你需要长时间保持该Cookie的有效性,可以使用类似于你当前所使用的方式,每隔一段时间发送一次请求来保持会话的活跃。但是,这种方式会占用不必要的带宽和服务器资源,因此最好不要过于频繁地发送请求。可以适当调整请求的时间间隔,以达到平衡保持会话活跃和减少不必要请求的目的。
8#
Jacen 发表于 2023-2-20 16:33
你可以考虑使用无头浏览器,如Selenium或Puppeteer。这些工具可以模拟完整的浏览器环境,包括COOKIE和会话,从而可以更准确地模拟用户在网站上的行为。

下面是使用Selenium实现这个过程的示例代码:
[Python] 纯文本查看 复制代码
from selenium import webdriver

# 创建浏览器对象
options = webdriver.ChromeOptions()
options.add_argument('--headless')  # 无头模式
browser = webdriver.Chrome(options=options)

# 添加COOKIE到浏览器会话
cookies = {'cookie_name': 'cookie_value'}
for name, value in cookies.items():
    browser.add_cookie({'name': name, 'value': value})

# 访问网站主页
browser.get('http://example.com')

在这个例子中,我们首先使用Selenium创建一个无头Chrome浏览器对象,并将COOKIE添加到浏览器会话中。然后,我们使用get()方法访问网站主页。由于这是一个完整的浏览器环境,所以会话会持续活动,从而保持COOKIE有效。

请注意,使用无头浏览器可能会对计算资源造成一定的负担,因此,这种方法适用于小规模的任务。如果你需要在大规模的任务中使用这种方法,你可以考虑使用多线程或分布式计算来加速处理速度。
9#
1073 发表于 2023-2-20 19:06
本帖最后由 1073 于 2023-2-20 19:08 编辑
Jacen 发表于 2023-2-20 16:33
你可以考虑使用无头浏览器,如Selenium或Puppeteer。这些工具可以模拟完整的浏览器环境,包括COOKIE和会话 ...

无头浏览器
10#
JackeyLoveONE 发表于 2023-5-17 00:29
请问解决了吗? 是什么方法  我也在学
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 22:21

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表