casperjs 写签到脚本真是简单直观!!! http://i-ai.org/v2ex-autosign/
1
ColinWei 2016-05-17 20:16:25 +08:00
简单的同时 健壮性为 0
|
2
atnoot 2016-05-17 20:23:38 +08:00
我也撸了个签到脚本
|
3
atnoot 2016-05-17 20:24:34 +08:00
python 版的
|
5
Gua 2016-05-17 20:38:54 +08:00
30 秒了,链接都没打开~
|
6
wex 2016-05-17 20:47:11 +08:00
@atnoot 你好,问下,为什么我可以登录成功,但是签到的时候提示:<div class="message" onclick="$(this).slideUp('fast');">请重新点击一次以领取每日登录奖励</div>
我是这样弄的: url = re.search(r'/mission/daily/redeem\?once=\d+', login.text).group() url = 'http://v2ex.com' + url login = session.get(url, headers=header).text |
8
EchoWhale 2016-05-17 23:28:52 +08:00 1
ruby 写了一个,遇到意外签到不成功会发邮件提醒
https://github.com/WunderEye/v2ex_auto_sign |
9
winterbells 2016-05-17 23:42:14 +08:00 via Android
我都是用 Chrome 的扩展。。。
|
10
kevinroot 2016-05-17 23:54:56 +08:00
你确定可以登录成功?
casper.start('http://v2ex.com/signin', function() { this.fillSelectors('form[action="/signin"]', { 'input[type="text"]': username, 'input[type="password"]': password }, false); }) 我这里显示 v 大登录时候已经加了防 xss , input name 已经变成 64 位的十六进制了 |
11
nivan OP @kevinroot 这里用到了 casperjs 1.1 的 api fillSelectors 根据 input 的 type 进行 填充
|
12
zhangyi2099 2016-05-18 06:37:49 +08:00 via iPhone
这是模拟浏览器登录吗?我记得我写的时候还要提取网页中 once 码
|
13
nivan OP @zhangyi2099 对,casperjs 是基于 phantomjs 或者 SlimerJS,前者使用 WebKit,后者使用 Gecko
|
15
liyvhg 2016-05-18 08:30:48 +08:00 via Android
@winterbells 求扩展名
|
16
atnoot 2016-05-18 08:41:20 +08:00
@wex github.com/davisqi/me.git 中 V2EX 可以参考一下
|
19
winterbells 2016-05-18 09:48:40 +08:00 via Android 1
|
22
wq2016 2016-05-18 14:29:16 +08:00
我是用 CasperJS 写的
|
23
inmyfree 2016-05-18 14:55:13 +08:00
前天快 200 天刚断了。。。
|
25
bearqq 2016-05-18 16:11:44 +08:00
@gogobody python , 2.7 依赖 mechanize 。
""" def make_br(): br = mechanize.Browser(history=NoHistory()) #cj = cookielib.LWPCookieJar() #br.set_cookiejar(cj) br.set_handle_equiv(True) br.set_handle_gzip(True) br.set_handle_redirect(True) br.set_handle_referer(True) br.set_handle_robots(False) br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1) br.set_debug_http(False) br.addheaders = [('User-agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0')] #br.set_proxies({"http":"username:[email protected]:8888"}) return br class v2ex(object): def __init__(self,v2expara,useproxy=0,proxyaddr='http://127.0.0.1:8580'): self.name='v2ex' self.br=make_br() self.v2expara=v2expara #('name','pass') def sign(self): br=self.br br.open('https://www.v2ex.com/signin') #for f in br.forms(): br.select_form(nr=1) for i in br.form.__dict__['controls']: #print i.name,i.type if i.type=='text': br.form[i.name]=self.v2expara[0] elif i.type=='password': br.form[i.name]=self.v2expara[1] br.submit() br.open('https://www.v2ex.com/mission/daily') if u'每日登录奖励已领取' in br.response().read(): return 1 else: br.open(re.search(r'/mission/daily/redeem\?once=\d+', br.response().read()).group()) if u'请重新点击一次以领取每日登录' in response: return 0 elif br.response().read(): return 1 return 0 """ |
26
bearqq 2016-05-18 16:15:03 +08:00
|
27
suspended 2016-05-18 16:38:12 +08:00 1
@EchoWhale 不能这么说吧。去年做了个 300K 的小项目(一个数据归档系统),除了直接和磁带机打交道的部分是 C ,其余的执行器,调度,空间管理,管理界面,全部都是用 ruby 写的。
|
28
EchoWhale 2016-05-18 17:56:38 +08:00
@suspended 个人开发者?那的确可以选任何语言。或者你能影响到公司新项目采用的技术栈。
ruby 的就业范围很窄是个不争的事实,所以我才说 Ruby 不能当饭吃 |
29
atnoot 2016-05-18 19:22:07 +08:00
@gogobody github.com/davisqi/me.git 中 V2EX 可以参考一下
|
30
audi 2016-05-18 19:22:30 +08:00 1
签到有什么用
|
31
xiaomayi0323 2016-05-18 23:42:50 +08:00
@atnoot Python 版的来一发
|
35
suspended 2016-05-19 11:06:18 +08:00
@EchoWhale 国内不流行 Ruby ,哪怕在国外似乎也都局限于 Rails? 蛮可惜的。我个人从没用过 Rails 。
|
36
shulen 2016-05-20 08:35:52 +08:00
https://github.com/ForestCho/node-v2ex 之前也弄过一个,现在还挂着签到
|
37
nivan OP |
42
moogle 2016-05-25 14:37:52 +08:00
@atnoot
请问 balance 是一个字符串,这里跑出异常,该如何处理? if balance not in result: TypeError: a bytes-like object is required, not 'str' |