V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
binux
V2EX  ›  分享创造

每天自动签到 —— 我们不造脚本,我们造框架

  binux ·
binux · 2014-08-18 09:19:14 +08:00 · 94582 次点击
这是一个创建于 3742 天前的主题,其中的信息可能已经有所发展或是发生改变。

这不是又一个XX网站自动签到脚本,更进一步,这是一个自动签到框架。
这是我对怎么抓取数据(另一个问题是怎么解析数据)的一个尝试吧。。

现在已经支持

  • V2EX
  • 什么值得买
  • 百度贴吧
  • 虾米
  • 9GAL

等7个网站

也可以自己制作签到脚本,使用或分享(这个还做不到全自动。。残念)

于是地址: https://qiandao.today/

关于帐号密码安全性问题

  • 网站强制使用 HTTPS 访问
  • 不用 sentry 之类会打整个栈的工具做日志收集
  • 所有用户敏感数据使用每个用户唯一的256位密钥加密
  • 再将用户密钥使用256位主密钥加密,所有解密过程只在内存中进行
  • 所有公开模板需要审核才能发布,防止用户密码被发送第三方

但限制于原理,为了回放请求,帐号密码终究还是要被解出来的。这时候只能说,请相信作者人品。

如果您还有担心,这个项目是开源的!
https://github.com/binux/qiandao
您可以从 qiandao.today 下载模板,上传自己的机器运行即可!

第 1 条附言  ·  2014-08-18 13:25:07 +08:00
鉴于很容易被封IP,提供一个命令行运行方式,可以从 https://qiandao.today/ 下载模板,本地运行。只要加入 crontab 就可以按时签到了。

git clone https://github.com/binux/qiandao.git
pip install tornado pycurl u-msgpack-python jinja2 chardet requests

cd qiandao
./qiandao tpl.har --username=<username> --password=<password> [env.json]
即可
第 2 条附言  ·  2016-10-24 21:39:58 +08:00
现在增加了 sqlite3 数据库支持,自己搭建更方便了
224 条回复    2021-08-16 14:53:20 +08:00
1  2  3  
Arrowing
    1
Arrowing  
   2014-08-18 09:30:38 +08:00
顶一个,一直是手动签到,可有可无的签到吧,习惯了。
hsiayc
    2
hsiayc  
   2014-08-18 09:31:28 +08:00 via iPhone
赞!治疗强迫症的独家秘方。
sdysj
    3
sdysj  
   2014-08-18 09:33:09 +08:00
淘宝金币支持吗?
mengskysama
    4
mengskysama  
   2014-08-18 09:33:36 +08:00
u2按请求IP记录日志,如果有大量相同IP考虑全禁恩。真的没关系?
binux
    5
binux  
OP
   2014-08-18 09:35:04 +08:00
@sdysj 可以试试能不能搞定淘宝登录,或者用 cookie,建议自己做模板。。

@mengskysama 这就是为什么开源的最大原因。。
binjoo
    6
binjoo  
   2014-08-18 09:37:31 +08:00
赞!治疗强迫症的独家秘方。
lyragosa
    7
lyragosa  
   2014-08-18 09:38:54 +08:00
只要是开源就没有任何安全性问题。

赞一个。
mengskysama
    8
mengskysama  
   2014-08-18 09:40:23 +08:00
@binux 哦我傻逼了,其实我觉得还可以加一个component然后用户可以实现更高级的功能,比如验证码识别什么的(好像违背了设计初衷
superbear
    9
superbear  
   2014-08-18 09:41:51 +08:00
域名挺不错,想法也挺好
binux
    10
binux  
OP
   2014-08-18 09:44:56 +08:00
@mengskysama 可以的哦,本来就有这个设计,模板可以使用变量,也能调用函数,写一个函数然后 pull-request 给我。
验证码有一个设计,可以用户间相互帮忙打码,攒点数,然后一段时间就不用来了。但是时间和实际需求不强烈原因就没做。。
humiaozuzu
    11
humiaozuzu  
   2014-08-18 09:45:36 +08:00   ❤️ 1
@binux sentry 会把含 password 之类的变量隐藏吧
maye696
    12
maye696  
   2014-08-18 09:49:36 +08:00
楼主这个想法不错
cutehalo
    13
cutehalo  
   2014-08-18 09:52:32 +08:00
要是签到失败了 能不能给邮箱发个邮箱什么的通知下=.=
LU35
    14
LU35  
   2014-08-18 09:56:15 +08:00 via Android
@binux 又是中英域名,不能搞个qiandao.la之类的嘛
ZMOM1031
    15
ZMOM1031  
   2014-08-18 09:56:46 +08:00
为何是python版本
binux
    16
binux  
OP
   2014-08-18 10:14:43 +08:00
@humiaozuzu 每个模板不一样,不一定只是 password 是敏感。
@cutehalo 只要不要 QQ 邮箱就可以哦
mornlight
    17
mornlight  
   2014-08-18 10:18:08 +08:00
百度贴吧那个是可以登录后拿到BDUSS,为何没做。。。
cutehalo
    18
cutehalo  
   2014-08-18 10:21:27 +08:00
@binux =。=才看到邮件 哈哈哈
binux
    19
binux  
OP
   2014-08-18 10:21:36 +08:00
@mornlight 贴吧如果异地登录是会出验证码的,不想处理验证码
kokdemo
    20
kokdemo  
   2014-08-18 10:23:29 +08:00
赞!
vicacheung
    21
vicacheung  
   2014-08-18 10:25:25 +08:00
能自己新建模板吗?
mornlight
    22
mornlight  
   2014-08-18 10:26:21 +08:00
@mornlight 明白了。可以考虑直接把验证码抛到前台,让用户输入然后保存BDUSS,一个BDUSS可以用非常久。
Tinet
    23
Tinet  
   2014-08-18 10:32:08 +08:00
@lyragosa 噗...
walkingway
    24
walkingway  
   2014-08-18 10:33:07 +08:00
能加入百度文库么,这个攒点数有时候下载文档还是挺有用的。。。
xbaofeng
    25
xbaofeng  
   2014-08-18 10:42:22 +08:00
上传自己的机器运行,能不能写一个说明呢?
chocotan
    26
chocotan  
   2014-08-18 10:50:29 +08:00
曾经做过一个9gal的点广告刷kfb的东西,后来用的人多了(大概挂了一百个账号在上面),服务器IP被封了。
楼主也要注意
jprovim
    27
jprovim  
   2014-08-18 10:52:47 +08:00
@binux,
"
也可以自己制作签到脚本,使用或分享(这个还做不到全自动。。残念)
"

寫一個cron tab就搞定了.
binux
    28
binux  
OP
   2014-08-18 10:58:48 +08:00
@xbaofeng 晚上做一个不需要数据库的命令行版本
binux
    29
binux  
OP
   2014-08-18 11:02:49 +08:00
@chocotan 你看,我很快就被 v2ex 封了
answeror
    30
answeror  
   2014-08-18 11:30:52 +08:00
@binux 用tor何如? rss.moe 的bilibili订阅就跑在tor上.
icyalala
    31
icyalala  
   2014-08-18 11:31:26 +08:00
⑨gal +1
flyun
    32
flyun  
   2014-08-18 11:34:58 +08:00
开源就是好
Comdex
    33
Comdex  
   2014-08-18 11:36:27 +08:00
请问today域名多少钱
binux
    34
binux  
OP
   2014-08-18 11:40:12 +08:00
@answeror 不安全啊,很多登录请求都是明文的
@Comdex 14刀
freedomli
    35
freedomli  
   2014-08-18 11:43:25 +08:00
试了贴吧的不能用,可以提供详细的使用步骤吗
zhouzm
    36
zhouzm  
   2014-08-18 11:48:22 +08:00
这类东西还是做开源客户端比较靠谱
freedomli
    37
freedomli  
   2014-08-18 11:48:33 +08:00
failed at 0/6 request, code:403, https://www.v2ex.com/signin是什么问题?
yinxingren
    38
yinxingren  
   2014-08-18 11:52:18 +08:00 via Android
太棒了 感谢卤煮
binux
    39
binux  
OP
   2014-08-18 11:59:29 +08:00
@freedomli 贴吧就是获取BDUSS(chrome 开发者工具,resourcees,Cookies 找),然后填贴吧的名字,V2EX被封IP了。。
crab
    40
crab  
   2014-08-18 12:04:13 +08:00
贴吧没弄成功。
binux
    41
binux  
OP
   2014-08-18 12:10:03 +08:00   ❤️ 1
@crab 好吧,貌似只有 BDUSS 还不行,打开 chrome 开发者工具,访问一下贴吧,从 network 面板选一个页面,拷贝整个 cookie
Navee
    42
Navee  
   2014-08-18 12:12:52 +08:00
签到有啥子用?
mengskysama
    43
mengskysama  
   2014-08-18 12:22:17 +08:00
@chocotan 我xforward大法注册了1000个马甲抽奖,IP没被封号被封了。
crab
    44
crab  
   2014-08-18 12:33:03 +08:00
@binux = = 也是不行呢。你测试下看看
binux
    45
binux  
OP
   2014-08-18 12:35:44 +08:00   ❤️ 1
@crab 我可以啊
cookie:
BDUSS=HZ什么什么FTM
name_of_bar:
dota2
hoogle
    46
hoogle  
   2014-08-18 12:41:00 +08:00 via iPhone
关于这个 简单点的可以考虑做成浏览器插件每天自动签到一次呢? 一般的人每天都会打开浏览器吧, 直接用浏览器带的 cookie 也不存在签到带来的安全问题。
crab
    47
crab  
   2014-08-18 12:46:43 +08:00
@binux 现在可以!那个cookie格式弄错了。
wangg800
    48
wangg800  
   2014-08-18 12:48:04 +08:00
v5, 越来越智能了
CRight
    49
CRight  
   2014-08-18 12:50:20 +08:00 via Android
不错啊。
binux
    50
binux  
OP
   2014-08-18 13:11:43 +08:00
@hoogle 确实可以做一个插件,把规则拉到本地执行,或者整个任务都建立在本地。qiandao.today 可以分享规则这样?
kingcos
    51
kingcos  
   2014-08-18 13:16:17 +08:00
智能~喜欢~希望支持越来越多
Roboo
    52
Roboo  
   2014-08-18 13:19:12 +08:00 via Android
为什么V2不做成每天登录即签到
非得手动点一下
增加流量?
Aoun
    53
Aoun  
   2014-08-18 13:33:05 +08:00
虾米绑定了淘宝账户怎么办?
lihuoqingfly
    54
lihuoqingfly  
   2014-08-18 13:33:35 +08:00
签到V2EX 服务器IP已被封。。
shyrock
    55
shyrock  
   2014-08-18 13:59:30 +08:00
什么值得买支持用微博账号登陆签到吗?
binux
    56
binux  
OP
   2014-08-18 14:09:49 +08:00
@Aoun
@shyrock
对于这种第三方登录。。只能另外做一个 cookie版 了。。
shyrock
    57
shyrock  
   2014-08-18 14:14:38 +08:00
@binux 果然还是有难度。。。
binux
    58
binux  
OP
   2014-08-18 14:19:55 +08:00
@shyrock 不对啊,微博帐号登录了需要补全资料,里面要一个帐号密码的啊
quericy
    59
quericy  
   2014-08-18 14:24:43 +08:00   ❤️ 1
贴吧签到目前我知道做得不错的就是kookxiang的贴吧签到助手(http://www.kookxiang.com/)了吧~
把他的这个开源项目部署到自己的服务器玩了下还不错(http://www.cycloud.tk/)
到是也想过模拟discuz论坛登录签到的插件集成进去的可能性,不过个人水平不足orz...
虾米签到一般还是交给chrome扩展~~
感觉还是对discuz做自动签到更具有可玩性,毕竟discuz的站太多了~~
asca
    60
asca  
   2014-08-18 14:38:21 +08:00
乐视最近移动端有签到送会员活动,不知道能不能实现...
binux
    61
binux  
OP
   2014-08-18 15:04:28 +08:00
@quericy qiandao.today 只是一个框架,通过模板系统解决不同网站的签到问题。可以看到 github 项目中,主语言其实是 CSS/javascript+coffeescript,模板编辑器是最花时间的部分。通过执行模板拥有非常多的可能。

看了 www.kookxiang.com 也是靠多服务器来解决被封问题。要解决有几个方案:
1、用户自己找服务器运行
2、用户提供代理,通过用户自己的代理签到
3、提供chrome插件(缺陷是哪天没开机就断签了)

反正我觉得最有趣的那一个部分(模板编辑器)已经完成了,其他的功能欢迎一起来开发。
kookxiang
    62
kookxiang  
   2014-08-18 15:11:32 +08:00
@binux 百度目前不封这个,封的基本都是自动回帖的
ulic95
    63
ulic95  
   2014-08-18 15:14:28 +08:00
我觉得可以有~
ybh37
    64
ybh37  
   2014-08-18 15:18:28 +08:00
感觉签到功能还不如登陆奖励方便。
binux
    65
binux  
OP
   2014-08-18 15:18:42 +08:00
@kookxiang 那签到又用不了多少带宽。。挂多少都没问题啊
kookxiang
    66
kookxiang  
   2014-08-18 15:24:08 +08:00
@binux PHP不支持多线程,所以人多容易卡
lingaoyi
    67
lingaoyi  
   2014-08-18 15:26:52 +08:00
服务器IP已被封。。
shyrock
    68
shyrock  
   2014-08-18 15:42:25 +08:00
打开网页,但是没有找到下载模板的地方啊。。。
binux
    69
binux  
OP
   2014-08-18 15:44:29 +08:00
@shyrock 所有公开模板,查看
hitbastank
    70
hitbastank  
   2014-08-18 15:55:10 +08:00
不错,不过都签到失败。。。
shyrock
    71
shyrock  
   2014-08-18 16:07:53 +08:00
smzdm的登陆命令可用,但是签到命令返回‘请登录后重试’。。。
binux
    72
binux  
OP
   2014-08-18 16:34:55 +08:00
@shyrock 邮件贴图
anjunecha
    73
anjunecha  
   2014-08-18 16:40:53 +08:00
dear,你在部署 SSL 证书的时候,是不是忘记在你的证书 crt 文件里贴上 comodo 的中间证书了?
bjlbeyond
    74
bjlbeyond  
   2014-08-18 16:43:01 +08:00
话说CHD有签到吗?
valianliu
    75
valianliu  
   2014-08-18 16:47:27 +08:00
能打包成Chrome插件最好了,本地执行,安全又方便。
binux
    76
binux  
OP
   2014-08-18 17:25:16 +08:00
@anjunecha 何出此论?
anjunecha
    77
anjunecha  
   2014-08-18 17:29:28 +08:00 via Android
@binux 我使用搜狗浏览器出现证书错误,然后我猜估计就是这个问题
binux
    78
binux  
OP
   2014-08-18 17:30:14 +08:00
@anjunecha 显然贴了。。
AndyV2
    79
AndyV2  
   2014-08-18 20:15:52 +08:00
9gal...u2....chdbits...都没有这些账号啊
usedname
    80
usedname  
   2014-08-18 21:58:25 +08:00
非常号的东西,感谢楼主,正好用来学习Python
maye696
    81
maye696  
   2014-08-18 23:12:32 +08:00
我在win下已经搭建好了环境 然后运行./qiandao tpl.har 需要怎么运行?
binux
    82
binux  
OP
   2014-08-18 23:54:57 +08:00
@maye696 win有点。。依赖都装了吗?然后参数是什么就 --key=value
quericy
    83
quericy  
   2014-08-19 00:42:00 +08:00
@kookxiang 哇,捕捉野生的kooxiang一只b( ̄▽ ̄)d~~
话说插件有木有集成Discuz签到的打算?(原谅我对这个纠结已久了_(:з」∠)__)
BOOM
    84
BOOM  
   2014-08-19 00:52:45 +08:00
提个建议。
楼主应该知道部分discuz程序的论坛会有每天点击进入别人的空间就可以加分吧。
那么可不可以做一个程序每天自动点击进入论坛10个人的空间(get请求?)。
个人对于这方面理解不是很深,只是希望可以做出这样一个功能。
谢谢~!
digimoon
    85
digimoon  
   2014-08-19 01:52:25 +08:00
比较想要一个firefox扩展版,开着浏览器就能自动签
点个签到不难,麻烦在需要登录上不同的n个网站去签,例如百度那些我根本是去过这站都会忘记签
所以如果有一个扩展用来统合这些签到,然后又有一个网站分享更新签到规则就太好了
wuwuyun
    86
wuwuyun  
   2014-08-19 07:55:53 +08:00
昨天已经签了 今天过了8点 做个模板试试看。
missdeer
    87
missdeer  
   2014-08-19 11:28:23 +08:00
用命令行签到虾米报
ERROR:root:'utf8' codec can't decode byte 0xa0 in position 14: invalid start byte
./qiandao.py tpl.har [--key=value] [env.json]
binux
    88
binux  
OP
   2014-08-19 12:13:20 +08:00
@missdeer 重新下载一下,老的脚本不知道为什么有一些特殊字符
shyrock
    89
shyrock  
   2014-08-19 16:10:28 +08:00
@binux 贴什么图。。。我用python试的,返回这个jQuery11100263365697581321_1406728864080({"error_code":1,"error_msg":{"public":"\u8bf7\u91cd\u65b0\u767b\u5f55\u540e\u64cd\u4f5c"},"data":[],"func":"jQuery11100263365697581321_1406728864080"})
binux
    90
binux  
OP
   2014-08-19 16:14:25 +08:00
@shyrock 不是单步调试应该看不到返回内容啊。。这个表示登录不成功,这个请求有cookie?可能性太多了
shyrock
    91
shyrock  
   2014-08-19 16:21:24 +08:00
@binux sorry,我的错,cookie没加。。。改了之后没问题了,谢谢你的模板。
shyrock
    92
shyrock  
   2014-08-19 18:28:04 +08:00
lz,能弄个chiphell的不?
binux
    93
binux  
OP
   2014-08-19 19:52:20 +08:00
@shyrock 也有http only 的cookie,登录又有验证码。。
shyrock
    94
shyrock  
   2014-08-20 10:03:43 +08:00
@binux 嘿嘿,就是因为有验证码,所以希望高手能想到办法
shyrock
    95
shyrock  
   2014-08-21 10:38:02 +08:00
呃,为什么v2ex下面有6条命令。。。一般不是登陆一条、签到一条吗?
binux
    96
binux  
OP
   2014-08-21 11:06:40 +08:00
@shyrock 需要 once 参数
shyrock
    97
shyrock  
   2014-08-21 12:10:35 +08:00
@binux once 是在sign in的时候拿到?
binux
    98
binux  
OP
   2014-08-21 13:11:51 +08:00
@shyrock 点测试可以看到分别从每个页面提取了什么参数
freedomli
    99
freedomli  
   2014-08-23 11:26:24 +08:00
访问不了了
binux
    100
binux  
OP
   2014-08-23 11:33:51 +08:00
@freedomli 没问题啊
1  2  3  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   953 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 30ms · UTC 21:34 · PVG 05:34 · LAX 13:34 · JFK 16:34
Developed with CodeLauncher
♥ Do have faith in what you're doing.