V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
爱意满满的作品展示区。
binux

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

  binux ·
binux · Aug 18, 2014 · 98106 views
This topic created in 4279 days ago, the information mentioned may be changed or developed.

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

现在已经支持

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

等7个网站

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

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

关于帐号密码安全性问题

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

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

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

Supplement 1  ·  Aug 18, 2014
鉴于很容易被封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]
即可
Supplement 2  ·  Oct 24, 2016
现在增加了 sqlite3 数据库支持,自己搭建更方便了
224 replies    2021-08-16 14:53:20 +08:00
1  2  3  
freedomli
    101
freedomli  
   Aug 27, 2014
@binux 502 Bad Gateway
binux
    102
binux  
OP
   Aug 27, 2014
fineao
    103
fineao  
   Sep 7, 2014
smzdm的一直失败,但是显示成功。。
binux
    104
binux  
OP
   Sep 8, 2014
@fineao cookie 方式吗?
kcworms
    105
kcworms  
   Sep 12, 2014
har编辑器的部分好棒,有可能增加“直接导出可以运行的脚本,并减少一些很重的依赖”功能吗?这样以前一些自己写脚本的机械性任务也可以……
binux
    106
binux  
OP
   Sep 12, 2014
@kcworms 因为涉及发送请求,编码识别,chardet,requests少不了,因为变量模板jinja2少不了。其实也减少不了多少
AnJ1nG
    107
AnJ1nG  
   Sep 12, 2014
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]

最后一步提示没有文件或目录..
binux
    108
binux  
OP
   Sep 14, 2014 via Android
@AnJ1nG 你不会真的照着写吧,下载模板了吗
AnJ1nG
    109
AnJ1nG  
   Sep 14, 2014
@binux 下载了smzdm的,然后改名smzdm.har 上传到qiandao目录 运行 也是提示这个啊...
binux
    110
binux  
OP
   Sep 14, 2014
@AnJ1nG 那你写了 env.json?
AnJ1nG
    111
AnJ1nG  
   Sep 14, 2014
@binux 没有 求教怎么写..?
binux
    112
binux  
OP
   Sep 14, 2014
@AnJ1nG 我明白了,./qiandao.py 不是 ./qiandao
你贴错误信息好不好,没有文件或目录有好几种没有法。。
AnJ1nG
    113
AnJ1nG  
   Sep 14, 2014
@binux
~/qiandao# ./qiandao.py smzdm.har --username=<username> --password=<password> [env.json]
-bash: username: 没有那个文件或目录
我系统改了语言中文的.如果有需要 我去改回英文吧..
AnJ1nG
    114
AnJ1nG  
   Sep 14, 2014
@binux
-bash: username: No such file or directory
binux
    115
binux  
OP
   Sep 14, 2014
~/qiandao# ./qiandao.py smzdm.har --username=<username> --password=<password> [env.json]

你真的这么打的?<username> 表示要替换成你自己的用户名。。。
AnJ1nG
    116
AnJ1nG  
   Sep 14, 2014
@binux 额...
-bash: syntax error near unexpected token `654321'
gaody
    117
gaody  
   Sep 14, 2014
测试服务器IP被封,哈哈哈,v2ex 出手了
终于看到today 的域名了,赞
binux
    118
binux  
OP
   Sep 15, 2014
@AnJ1nG 你用户名密码里面有特殊字符?用 ' 单引号扩起来。。
AnJ1nG
    119
AnJ1nG  
   Sep 15, 2014
@binux
我又来了...
密码括起来了...然后账号显示这个 - -
-bash: [email protected]: No such file or directory
binux
    120
binux  
OP
   Sep 15, 2014
@AnJ1nG 额。。。你不会是还带着尖括号吧。。

比如你帐号是 [email protected] 密码是 abcd1234,你应该打

./qiandao.py smzdm.har --username='[email protected]' --password='abcd1234'
AnJ1nG
    121
AnJ1nG  
   Sep 15, 2014
@binux
成功了...
真是太谢谢 ^ ^
ety001
    122
ety001  
   Sep 17, 2014
域名很牛弊!
ptsa
    123
ptsa  
   Oct 1, 2014
有openwrt 版本的就好了哈
tuutoo
    124
tuutoo  
   Oct 4, 2014
简单 易用 哈哈 已经在自己的VPS上部署了!
Ansen
    125
Ansen  
   Oct 8, 2014
模版下载不了。。
messyidea
    126
messyidea  
   Dec 3, 2014 via Android
很有用,支持~
loveuqian
    127
loveuqian  
   Dec 4, 2014
有测试过嘛。什么都没输入点签到。直接什么值得买就签到成功了
binux
    128
binux  
OP
   Dec 4, 2014
@loveuqian 因为模板没写检测啊,需要你可以给它写一个
416877140
    129
416877140  
   Dec 31, 2014
如果能直接导入已有的规则模板就好了...
apu159
    130
apu159  
   Jan 6, 2015
File "./qiandao.py", line 16
print "%s tpl.har [--key=value] [env.json]" % sys.argv[0]
^
SyntaxError: invalid syntax
@binux 如何解决。
binux
    131
binux  
OP
   Jan 6, 2015
@apu159 python 2.7
brucmao
    132
brucmao  
   Jan 22, 2015
@binux 能不能支持115网盘自动签到和摇一摇
binux
    133
binux  
OP
   Jan 22, 2015
@brucmao 群里貌似有人做了,但是没有发出来
icedx
    134
icedx  
   Jan 25, 2015
忘记登录邮箱怎么破...
binux
    135
binux  
OP
   Jan 25, 2015
@icedx 再注册一个?
icedx
    136
icedx  
   Jan 25, 2015 via Android
@binux 能不能通过V2ID 找回…
Oucreate
    137
Oucreate  
   Jan 25, 2015
揪到160天前的帖的我也是强。

Cannot THX no more.

Ps:
不勾选“我今天已经签过到了”它不会自动识别。。。╮(╯▽╰)╭,是因为徒增无谓的代码所以不必要?
fezar
    138
fezar  
   Feb 3, 2015
我也遇到了什么值得买一直失败却显示成功。


是用户名密码模式。
binux
    139
binux  
OP
   Feb 3, 2015
@fezar 用 cookie 版
Taiga
    140
Taiga  
   Feb 12, 2015
@binux 自己搭建的签到怎么审核发布的模板呢
binux
    141
binux  
OP
   Feb 12, 2015
@Taiga 到数据库里,把你的账户的 role 改成 admin
Taiga
    142
Taiga  
   Feb 12, 2015
@binux thx,顺便提交了一个push_request.py下的bug修正
DylanRing0
    143
DylanRing0  
   Feb 21, 2015
问下dalao怎么才能把web部分放到nginx下面去执行
(VPS上已有LNMP环境,占用了80、443端口)
binux
    144
binux  
OP
   Feb 22, 2015 via Android
@DylanRing0 反代
DylanRing0
    145
DylanRing0  
   Feb 22, 2015
@binux 好机智的解决办法 ==
rockfirm
    146
rockfirm  
   Feb 28, 2015
@binux
Debian 6系统,运行第二步时出错,还要做特别的环境配置吗?
pip install tornado pycurl u-msgpack-python jinja2 chardet requests
Downloading/unpacking u-msgpack-python
Downloading u-msgpack-python-2.0.tar.gz
Running setup.py egg_info for package u-msgpack-python
Downloading/unpacking pycurl
Downloading pycurl-7.19.5.1.tar.gz (142Kb): 142Kb downloaded
Running setup.py egg_info for package pycurl
Traceback (most recent call last):
File "<string>", line 14, in <module>
File "/build/pycurl/setup.py", line 634, in <module>
ext = get_extension(split_extension_source=split_extension_source)
File "/build/pycurl/setup.py", line 392, in get_extension
ext_config = ExtensionConfiguration()
File "/build/pycurl/setup.py", line 65, in __init__
self.configure()
File "/build/pycurl/setup.py", line 100, in configure_unix
raise ConfigurationError(msg)
__main__.ConfigurationError: Could not run curl-config: [Errno 2] No such file or directory
Complete output from command python setup.py egg_info:
Traceback (most recent call last):

File "<string>", line 14, in <module>

File "/build/pycurl/setup.py", line 634, in <module>

ext = get_extension(split_extension_source=split_extension_source)

File "/build/pycurl/setup.py", line 392, in get_extension

ext_config = ExtensionConfiguration()

File "/build/pycurl/setup.py", line 65, in __init__

self.configure()

File "/build/pycurl/setup.py", line 100, in configure_unix

raise ConfigurationError(msg)

__main__.ConfigurationError: Could not run curl-config: [Errno 2] No such file or directory

----------------------------------------
Command python setup.py egg_info failed with error code 1
Storing complete log in /root/.pip/pip.log
regent
    147
regent  
   Apr 7, 2015
如果卸载要怎么做
JwhSir
    148
JwhSir  
   Apr 18, 2015
时隔这么久我找出了这个旧帖...还是很有帮助
vainly
    149
vainly  
   Apr 21, 2015
@binux 同学,qiandao站点是停用了吗?无法打开,
binux
    150
binux  
OP
   Apr 21, 2015
@vainly 机器挂了,等一两天吧。。
OiCkilL
    151
OiCkilL  
   Apr 23, 2015
什么值得买的两个公共模板貌似月中的时候就失效了
binux
    152
binux  
OP
   Apr 23, 2015
@OiCkilL 因为张大妈加了一个需要执行 js 才能获得的参数,光用模板还不行,等我有时间
tobyzhong
    153
tobyzhong  
   Apr 25, 2015
您好我想做一个网易云音乐的签到脚本 能用得上您这个嘛?还是要我重新写
binux
    154
binux  
OP
   Apr 25, 2015
@tobyzhong 如果只是模拟一些请求,不需要计算,应该可以吧
anyfc
    155
anyfc  
   Apr 27, 2015
zimizu.tv刚刚开放了签到升级功能,是否有计划加入这个网站的自动签到?
binux
    156
binux  
OP
   Apr 27, 2015
@anyfc 其实我更希望用户能直接创建模板。。
targettttt
    157
targettttt  
   May 9, 2015
@anyfc 同求 怀念以前的自动登录,手动的就忘记了,然后80+的记录就没有了ಠ_ಠ
anyfc
    158
anyfc  
   May 9, 2015
huaxing
    159
huaxing  
   May 30, 2015
@binux 请看下这个网站《一键签到》官方网站: http://oks.shumei.me 里面有许多您没有的,可以添加下另附源码下载:http://oks.shumei.me/supportlist.html
binux
    160
binux  
OP
   May 30, 2015 via Android
@huaxing 因为我并不想维护那么多网站的脚本。。我只做了我用到的
lekai63
    161
lekai63  
   Jun 2, 2015
@binux 我git后在自己服务器上手动执行都是没问题的。但是加入crontab后,v2ex这种以用户名密码方式的执行成功。smzdm这种以cookie形式的就是不成功。。。。求解啊楼主~~
非IT从业人员知识积累不够T.T
binux
    162
binux  
OP
   Jun 2, 2015
@lekai63 smzdm 脚本已经失效了
lekai63
    163
lekai63  
   Jun 2, 2015
@binux 可是在你的qiandao.today上使用没问题啊~~ 所以现在还是在你的网站上用着呢~~ 嘿嘿
binux
    164
binux  
OP
   Jun 2, 2015
@lekai63 不可能,smzdm 早失效了。你确认签到是成功的?
lekai63
    165
lekai63  
   Jun 2, 2015
@binux cookie版一直可以。我就是想在自己服务器上执行smzdm的cookie版总是失败。。
binux
    166
binux  
OP
   Jun 2, 2015
@lekai63 你登录 smzdm 看,签到成功了?
lekai63
    167
lekai63  
   Jun 2, 2015
@binux 是啊是啊 成功的是cookie版签到的
Mizzi
    168
Mizzi  
   Jun 8, 2015
@binux 自建的话怎样设置定时自动签到呢?
binux
    169
binux  
OP
   Jun 8, 2015
Mizzi
    170
Mizzi  
   Jun 8, 2015
@binux 感谢,是保证一直后台运行即可吗?新添加的任务后不需要先停止再启动是吧?
binux
    171
binux  
OP
   Jun 8, 2015   ❤️ 1
@Mizzi 不用
Mizzi
    172
Mizzi  
   Jun 9, 2015
@Mizzi 再次求解代理格式是这样吗?

{'http': "http://x:x"},
{'http': "http://x:x"}
binux
    173
binux  
OP
   Jun 9, 2015   ❤️ 1
proxies = [
{'host': '', 'port':, 'username': '', 'password': ''},
]
@Mizzi
Mizzi
    174
Mizzi  
   Jun 9, 2015
@binux 赞!感谢!!
Mizzi
    175
Mizzi  
   Jun 10, 2015
@binux 你好,根据这个格式设置了无验证的http代理,确认代理没有问题,但是出现错误 NotImplementedError('proxy_host not support')

请问这是哪里的问题呢?还是代理需要的不是http代理吗?
binux
    176
binux  
OP
   Jun 10, 2015
@Mizzi 你没装 pycurl ?
Mizzi
    177
Mizzi  
   Jun 10, 2015
@binux 确实没有安装,马上试试,感谢作者!
viko16
    178
viko16  
   Jun 12, 2015
@binux qiandao.today 被 v2ex 封 ip 了么? 一直 403 好心疼 (只是无责任猜测
xiaocsl
    179
xiaocsl  
   Jul 15, 2015
在VPS上部署了一份

现在唯一的问题是他不自动签到.到点后还是正在准备签到.
3分钟过后还是现实"正在准备签到"
手动点立刻签到,没问题,会立刻签到.
binux
    180
binux  
OP
   Jul 15, 2015   ❤️ 1
xiaocsl
    181
xiaocsl  
   Jul 15, 2015
@binux 已经跑起来了,Tks
neroanelli
    182
neroanelli  
   Sep 8, 2015
@binux 遇到以下问题,不知如何解决?运行环境是 x86 OpenWRT.
root@host:~/qiandao# ./qiandao.py hdpfans.har --username='xxx' --password='xxxxxxx'
ERROR:root:(48, '')
Traceback (most recent call last ):
File "/root/qiandao/libs/fetcher.py", line 361, in do_fetch
), proxy=proxy )
File "/usr/lib/python2.7/site-packages/tornado/gen.py", line 870, in run
value = future.result ()
File "/usr/lib/python2.7/site-packages/tornado/concurrent.py", line 215, in result
raise_exc_info (self._exc_info )
File "/usr/lib/python2.7/site-packages/tornado/gen.py", line 876, in run
yielded = self.gen.throw (*exc_info )
File "/root/qiandao/libs/fetcher.py", line 330, in fetch
response = yield self.client.fetch (req )
File "/usr/lib/python2.7/site-packages/tornado/gen.py", line 870, in run
value = future.result ()
File "/usr/lib/python2.7/site-packages/tornado/concurrent.py", line 215, in result
raise_exc_info (self._exc_info )
File "<string>", line 3, in raise_exc_info
error: (48, '')
qiandao failed! failed at 1/3 request, error:error (48, ''), http://www.hdpfans.com/member.php?mod=logging&action=login&loginsubmit=yes&infloat=yes&lssubmit=yes&inajax=1
KevinChan
    183
KevinChan  
   Sep 10, 2015
@fineao 同样的问题
neroanelli
    184
neroanelli  
   Sep 11, 2015
@neroanelli
额,还是回复一下。问题已经解决,在 OpenWrt 上搭建成功,包括 web ( mysql 、 redis )。产生上面的错误是因为默认情况下, OpenWrt 的 libcurl 功能不完整,重新编译一个完整版的 libcurl 安装搞定。
badorange
    185
badorange  
   Oct 9, 2015
手机 APP 签到,能不能用?
hobo6019
    186
hobo6019  
   Mar 4, 2016
好棒,自己摸索做了个 discuz 的自动签到,竟然真的成功了,还能从网页提取变量。。。好神奇。。。
micookie
    187
micookie  
   Apr 9, 2016
感谢。~
zhangfan
    188
zhangfan  
   May 19, 2016
战略 mark
feixiangdao
    189
feixiangdao  
   May 23, 2016
请教
./qiandao tpl.har --username=<username> --password=<password> [env.json]
最后的[env.json] 是指什么?
cookie 的命令行格式是什么?
什么值得买还能用吗?
binux
    190
binux  
OP
   May 23, 2016
@feixiangdao env.json 是可选的,格式为 dict ,内容和前面的参数一样
cookie 为 cookie string 形式,和 web 界面上插件获取的格式一样。
什么值得买应该不能用了
xzc0001
    191
xzc0001  
   Aug 27, 2016
不知道京东会员签到是谁维护的哦。现在贵站的京东会员签到已失效,自己尝试修改失败,似乎现在有一个 token ,不知道是如何获取的。
standin000
    192
standin000  
   Sep 19, 2016
楼主厉害,顶顶!
mkjszx
    193
mkjszx  
   Oct 14, 2016
自己能用空间搭建吗?如何搭建?来个教程吧。
ixinshang
    194
ixinshang  
   Oct 22, 2016
@hobo6019 请问能分享下吗
wujunze
    195
wujunze  
   Nov 30, 2016
wq2016
    196
wq2016  
   Dec 23, 2016
666
kookpua
    197
kookpua  
   Mar 9, 2017
字幕组和吾爱破解 获取不了 cookie 了呀
kookpua
    198
kookpua  
   Mar 9, 2017
哦 是我使用不当~应该要安装 cookie 获取助手后才能使用
chosen1st
    199
chosen1st  
   Jul 21, 2017
@binux 想请教一下 我想修复目前的 kindbook 网站的模板 因为这个网站从 http 切到 https 了 但是不知道如何在创建模板时利用 Cookies 获取助手来拿 cookie O(∩_∩)O 谢谢
binux
    200
binux  
OP
   Jul 21, 2017
@chosen1st 模板里面是 https 就可以了啊
1  2  3  
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3009 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 187ms · UTC 15:10 · PVG 23:10 · LAX 08:10 · JFK 11:10
♥ Do have faith in what you're doing.