Python 签到网站,如果调用 COOKIES,能用多久是不是取决于 COOKIES 的有效期

2020-05-03 20:17:55 +08:00
 wuyuchenshr
1.我想用 python 签到一个网站,因为有滑动验证,我就想直接复制 cookies 来登陆签到,请问我这个程序能用多久,是不是取决于这个 cookies 的有效期?

2.如果我想长期有效,是不是必须得通过账号密码登陆的方式来获取 cookies ?
4530 次点击
所在节点    Python
15 条回复
hiccup00
2020-05-03 20:39:48 +08:00
借楼求个有验证码的网站登录并签到的方法~
ClericPy
2020-05-03 21:07:22 +08:00
1. 先定时访问, 判断出 Cookie 实际有效期. 在 Cookie 字段里的 expire 或者 max age 是给浏览器看的, 有时候不是服务端那边的, 所以不保险.

2. 长期有效方面, 如果你能用 Headless 或者正常的方式成功登录, 那只要有一步验活请求, 就知道 Cookie 失效时候刷新 Cookie 就好了.

验证码方面大部分都用的机器视觉那些库做的, 滑动验证码我在 Headless 里用 dispatch Event 的方式拖拽每次都被反爬, 用 pyautogui 去拖拽就不会, 头疼...
imdong
2020-05-03 21:13:08 +08:00
回楼主:很多 Cookies 过期是客户端控制,所以如果保存 Cookies 使用,弄不好就不会过期了。
但是有些网站会识别 不同的浏览器 / 不同的 IP 会强制退出,所以具体情况具体分析,
原则上,楼主的思路没错,直接保存 Cookies 使用,能解决绝大多数场景。

回 @hiccup00 #1:创建 web 服务器,模拟正常请求获取验证码以后,使用 base64 img 返回给页面(一般会把对应的 cookies 也回给客户端),
浏览器端手动输入验证码后,提交给服务器,服务器继续后续的登录请求。
此方法不适用 拖动,点击类新型验证码。

另外,曾设想过另一个想法(中间人攻击):
服务器开启 http 代理,浏览器设置代理登录,登录成功后,服务器端窃取请求,即可。
jugelizi
2020-05-03 21:24:39 +08:00
实践出真知
你既然经常用这个网站 可以尝试修改下浏览器中的 cookie 有效期
有的网站 jwt 方案的几乎永久有效
不排除服务器重启之类清空服务端登录信息的
yukiloh
2020-05-03 21:38:10 +08:00
我抓 smzdm 的登陆给看晕了,后来索性不登陆了
luckyswag
2020-05-03 23:41:54 +08:00
https://qiandao.today/
crab
2020-05-04 06:39:54 +08:00
要长期肯定只能账号密码正常登陆,也就是失效后自动登陆。用 cookies 取决网站那边,有的持续访问会一直保持登陆状态,有的就不行。
crella
2020-05-04 10:15:12 +08:00
水木社区的登录 cookie 我也是搞不清什么情况;浏览器复制 curl 命令,然后用 curl 发送,照样返回访客模式的 set-cookie,估计登录的时候有 js 动态计算一些东西。
SenLief
2020-05-04 10:35:56 +08:00
cookie 长期应该不容易,一般还是要写模拟登录程序的。
Virace
2020-05-04 12:04:10 +08:00
觉得滑动验证不好过!如果自己用,其实可以再签到失败给自己发个邮件!手动更新 cookie,这也不乏是一种方法!
cnzjl
2020-05-04 13:37:18 +08:00
只能定时去刷新 cookie
loli
2020-05-04 14:43:41 +08:00
@luckyswag
我也有在用这个,好像也是 v2 老哥自建还开源了的,已经持续几年了吧。
这里的 cookies 有效期我也奇怪,我电脑本地的 cookies 都失效了网站上的还能签到。
还有就是好多地方都有防这个的,比方说地址带特征码的不知道怎么解决,formhash=e1ad8d3d 这种
Qiled
2020-05-05 23:08:58 +08:00
@loli 你这个看着就是 DZ 论坛的。通常访问某个页面可以获得 formhash
vagrantear
2020-05-07 16:13:51 +08:00
@loli 主页有的,写个正则获取一下就行
loli
2020-05-07 19:37:48 +08:00
@vagrantear
请问下文档在哪呀? github 翻了半圈没找到里面说的文档在哪。
在被关闭的 issues 里找到了个帖子,看了半天还是没明白这正则是什么格式。
我只明白最基础的正则
比方说 \?formhash=(.*?)\\ 匹配 html?formhash=e1ad8d3d\
我这样写还是错的,匹配不到。
他里面的例子有好多其他参数?
比方说 redeem\?once=(.*?)' 我翻了下只匹配 \?once=(.*?)' ,redeem 好像是特殊参数。
还有一些看都看不懂。。
比方说
type="hidden" value="(.*?)" name="once"
type="password"\sclass="sl"\sname="(.*?)"
我连要匹配的是什么都不知道,更不要说哪些是参数哪些是匹配词了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/668317

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX