每天自动签到 我们不造脚本,我们造框架 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
binux
V2EX    分享创造

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

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

这不是又一个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, 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     Solana     5258 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 35ms UTC 03:54 PVG 11:54 LAX 20:54 JFK 23:54
Do have faith in what you're doing.
ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86