请教关于 PHP 和 Python 下自动领取 V2EX 金币的脚本问题,困扰了好久

2015-03-22 17:59:03 +08:00
 abelyao
老实说
从第一天玩 V2EX 就有想写一个自动领取每日金币奖励的工具
尝试过 PHP 和 Python

PHP 使用 curl
Python 使用 urllib 和 urllib2
模拟登录什么的都没问题

但是!
到了请求 /mission/daily/redeem?once=***** 这一步就一直失败
总是提示 “今天的登录奖励已经领取过了哦” 但其实是还没领取的,而且领取按钮还在

一开始使用 PHP 写的,失败,不甘心,本着钻研的精神(说得真好听 →_→)
又硬着头皮用 Python 又写了一份脚本(在此之前没接触过 Python…)
结果还是一样

在 github 找到了许多 v2ex 的脚本,试了三四份,只有一份 python 的可以成功领取
看了一下也没什么区别啊
无论是 referer 还是 user-agent 等 header 信息都有添加

到底 v2ex 是使用了什么黑魔法来防御的…?
不甘心啊…
希望高手指点一下

不为别的,就想知道是哪个关键点我忽略了?
如果只是为了自动领金币,我可以用现有的脚本来运行,也不会花了这么长时间用不同语言来尝试了
2891 次点击
所在节点    问与答
18 条回复
mornlight
2015-03-22 18:04:09 +08:00
HTTP 包抓出来看过了吗?只看代码可能有疏漏。
如果真是同一个IP 同样的HTTP 请求,不应该会出现你说的情况。
yxjxx
2015-03-22 18:38:11 +08:00
binux
2015-03-22 18:43:26 +08:00
https://qiandao.today/tpl/8/edit
abelyao
2015-03-22 18:55:06 +08:00
@mornlight
@yxjxx
@binux

已经搞清楚了,APPEND 在主帖中。
kn007
2015-03-22 19:02:23 +08:00
@abelyao 好奇php怎么实现
abelyao
2015-03-22 19:04:55 +08:00
@kn007 PHP 用 CURL 就可以咯
kn007
2015-03-22 19:10:20 +08:00
@abelyao 厚脸皮求上传到github项目
falcon05
2015-03-22 19:34:32 +08:00
进入一次首页后发生了什么?cookie变化了?
xzem
2015-03-22 20:52:19 +08:00
@falcon05 应该就是cookie
abelyao
2015-03-22 22:10:45 +08:00
@kn007 被你这么一问我突然有点没底了…
因为刚刚是在 python 下实现的,我现在用 PHP 试试,如果成功了就共享出来~
kn007
2015-03-22 23:18:33 +08:00
@abelyao 好的,感谢!php配合正则应该没问题,最近比较忙,回头我也试试
fuxkcsdn
2015-03-22 23:28:53 +08:00
最开始有每日奖励的时候用 bash+wget 搞定过,大概1、2礼拜后换了台 VPS ,然后该脚本就失效了...
abelyao
2015-03-24 12:34:59 +08:00
@kn007 已发到 GitHub,我就不专门开个新帖了 :)
https://github.com/abelyao/v2ex-daily
kn007
2015-03-24 12:47:34 +08:00
@abelyao 收到,回去看看
kn007
2015-03-24 21:54:21 +08:00
@abelyao 测试下貌似不成功,因为登录后是302,而116行对于非200返回直接错误退出了。去掉后,貌似balance一直返回false。即便都砍掉,直接请求/mission/daily/redeem?once=xxxxx,也是302失败,我自己用浏览器本地php测试也是302失败。你那边没问题么
abelyao
2015-03-25 01:07:26 +08:00
@kn007 302 是跳转吧?CURL 中有设置允许跳转的话最终是会得到一个 200 的响应结果的啊,我这边已经几个账号一起运行了都可以的
kn007
2015-03-25 06:37:31 +08:00
@abelyao 我看到了,可能我这边不行?因为我自己在浏览器试了也不行。郁闷。环境是php5.5.20、curl7.39.0。这两天没时间,回头我再试试。谢谢。
nj
2015-04-18 14:19:38 +08:00
@abelyao 请问你是如何让这个模拟登录的脚本运行起来呢?就是如何实现让它去打开浏览器去签到?谢谢了。

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

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

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

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

© 2021 V2EX