V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
hxnmdc
V2EX  ›  问与答

问一下写抢月饼的代码需要哪些知识?

  •  
  •   hxnmdc · 2016-09-28 19:15:59 +08:00 · 4155 次点击
    这是一个创建于 2976 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我本科阶段是数学系的,编程经验仅限于 C++ 和 Weiss 的那本数据结构,所以前段时间看到饼场的大牛可以写抢月饼的代码感觉很高级。我本来以为这个东西是学了 HTML 和 CSS 就能写出来这样的脚本,可是前两天去 w3c 上浏览了几页发现它们好像是讲怎么写一个网页啊,很好奇学了什么之后才能抢月饼。。。

    希望大家能指点一下,先谢谢各位了大神了。

    35 条回复    2016-09-29 17:56:48 +08:00
    b821025551b
        1
    b821025551b  
       2016-09-28 19:18:37 +08:00   ❤️ 1
    需要一个很不负责的前端。
    https://zhuanlan.zhihu.com/p/22644277
    hxnmdc
        2
    hxnmdc  
    OP
       2016-09-28 19:25:45 +08:00 via iPhone
    @b821025551b 这是 javascript 吗? 我看了一下为什么一个对象有什么多方法。。而且还一层一层的,你们都是背过的么。。
    chemzqm
        3
    chemzqm  
       2016-09-28 19:31:08 +08:00
    @hxnmdc 就是些 jquery 的 API , 使用原生 DOM 写起来要麻烦一些
    WhoMercy
        4
    WhoMercy  
       2016-09-28 19:37:46 +08:00 via Android
    @hxnmdc
    本质上是:循环判断页面的特定数据(倒计时),当特定数据到达某种状态(倒计时完毕)时,提交请求(下单购买)。
    需要的知识:有网页知识,你要知道从哪取数据;有网络知识,你要知道怎么封装数据提交请求(通过接口不通过页面)。
    btw,js 和语言都能做到这些,区别是有的语言实现起来方便快捷。而脚本精灵这种…效率太低。
    nlzy
        5
    nlzy  
       2016-09-28 19:38:43 +08:00 via Android
    JavaScript 和 jQuery
    hxnmdc
        6
    hxnmdc  
    OP
       2016-09-28 19:42:06 +08:00
    @chemzqm 勉强百度明白了 jquery 和 dom 的意思,感觉好高深~
    hxnmdc
        7
    hxnmdc  
    OP
       2016-09-28 19:44:07 +08:00
    @WhoMercy var value = $(".answerList").children().eq(0).html(); //验证码取值
    这个是获得验证码的值? 为什么这么简单。。。 我怎么记得获得验证码的值是一件很麻烦的事情啊,不是要进行图像处理什么的么?我记得机器学习里还有专门的算法,为啥一行就搞定了。。
    ByZHkc3
        8
    ByZHkc3  
       2016-09-28 19:47:27 +08:00
    需要基本的 js+jquery+HTML 基础知识就好了。
    zwpaper
        9
    zwpaper  
       2016-09-28 19:48:38 +08:00 via iPhone
    @hxnmdc 因为月饼验证码直接可以再网页看到
    WhoMercy
        10
    WhoMercy  
       2016-09-28 19:48:51 +08:00 via Android
    @hxnmdc
    所以说这件事其实负责做活动写页面的人也有问题。
    他们直接把验证码明文写到了页面里,不需要对验证码进行识别,直接就能取到
    现在看来,更感觉是像在钓鱼。
    t6attack
        11
    t6attack  
       2016-09-28 19:50:26 +08:00
    熟练使用任何一门脚本语言即可。另外,这不是语言的问题,是互联网服务整体原理的理解。

    非得往 C++上靠也可以。 web 服务器、 JS 解释引擎、浏览器、脚本语言,都是 C/C++写的。你可以读一读它们的源码。
    hxnmdc
        12
    hxnmdc  
    OP
       2016-09-28 19:55:57 +08:00
    @WhoMercy
    @zwpaper
    原来是这样,谢谢两位大神解惑。
    hxnmdc
        13
    hxnmdc  
    OP
       2016-09-28 19:57:27 +08:00
    @t6attack 哈哈 虽说我学过 C++ 但是也已经 2 年没用过了,最近一直在用 matlab 。。
    源码这两个字看上去就感觉很恐怖的样子
    hxnmdc
        14
    hxnmdc  
    OP
       2016-09-28 19:59:29 +08:00
    另外问一下大家,这些东西都是上大学的时候的课程吗?还是大家自学的。 为什么我感觉我们学校计算机系没有开这方面的课啊,只看到一门“网络程序设计”在选修里面,不知道有没有关系。
    popok
        15
    popok  
       2016-09-28 20:05:52 +08:00
    用的就是 jquery 的选择器,用原生的 js 也行,就是没那么方便
    lxy
        16
    lxy  
       2016-09-28 20:07:31 +08:00
    很简单的 js 代码,写不出来的前端是不合格的,甚至不做前端的我都可以写……自己看了一些阮一峰的教程就了解了, jQuery 也不难。做这个抢月饼页面的人要么是非常懒,要么就是笨蛋……
    popok
        17
    popok  
       2016-09-28 20:08:02 +08:00
    @hxnmdc 这些东西应该是偏向前端的吧,学过 javascript 的一般都知道吧。
    zythum
        18
    zythum  
       2016-09-28 20:10:04 +08:00
    @hxnmdc 都是写熟的。你每天写个几十遍你也熟。
    isbase
        19
    isbase  
       2016-09-28 20:23:06 +08:00 via Android
    入门级的,用 jQuery 就更简单了
    Jakesoft
        20
    Jakesoft  
       2016-09-28 21:00:05 +08:00
    @WhoMercy 不敢相信把验证码放在页面上,我觉得那个 div 可能就是一个输入框,抢月饼时,把正确的验证码输入进去,然后使用 setInterval 多次模拟点击,可见验证码是可以多次被使用。

    @hxnmdc 你所说的是链式操作吧,比如说 $('div').children().eq(0).find(''a").text()这种,前面的 children,eq,find 也好,其实他们返回的都是一个节点对象,只是每次调用不同的方法,返回的节点都不一样,任何节点对象都是有 children,eq,find,text 方法的
    loy6491
        21
    loy6491  
       2016-09-28 22:08:07 +08:00
    总感觉你在装嫩。。
    wdlth
        22
    wdlth  
       2016-09-28 22:37:12 +08:00
    延迟这么短,直接刷爆了吧……
    zzNucker
        23
    zzNucker  
       2016-09-29 00:33:03 +08:00
    @Jakesoft 你不用不敢相信,这就是个事实。
    PureDark
        24
    PureDark  
       2016-09-29 04:03:39 +08:00
    阿里写秒杀页面的 lowB 把人害惨了 斜眼
    paranoiagu
        25
    paranoiagu  
       2016-09-29 07:57:26 +08:00 via Android
    @PureDark 是的。
    iTakeo
        26
    iTakeo  
       2016-09-29 08:28:24 +08:00 via iPhone
    你把 jq 的 API 看一遍,你也会写了
    lwbjing
        27
    lwbjing  
       2016-09-29 09:45:23 +08:00
    可能是抢月饼技术被黑的最惨的一次...
    ycxgmail
        28
    ycxgmail  
       2016-09-29 09:46:22 +08:00
    可能是抢月饼技术被黑的最惨的一次..
    sudo123
        29
    sudo123  
       2016-09-29 10:26:35 +08:00
    不知道按键精灵行不行……
    houskii
        30
    houskii  
       2016-09-29 13:04:22 +08:00
    @hxnmdc 计算机系很少直接教编程语言的课,最多教个面向对象带你入门。大多数都是计算机体系的知识,像现在流行的开发工作知识都是要自学的
    imn1
        31
    imn1  
       2016-09-29 13:52:47 +08:00
    1.《劳动法》
    2.《劳动合同法》
    3.《办公室政治》
    4.卓别林《大独裁者》
    这才是正确的知识点啊……
    exch4nge
        32
    exch4nge  
       2016-09-29 17:09:42 +08:00
    现在浏览器开发者工具做的太良心,用来学 HTML javascript css 太爽。先了解 html DOM 还有 javascript 吧,抢月饼的这种可以用 userscript 做。
    Felldeadbird
        33
    Felldeadbird  
       2016-09-29 17:32:38 +08:00
    你只要知道怎样 用 jquery 修改页面的效果
    YvesX
        34
    YvesX  
       2016-09-29 17:54:41 +08:00
    饼厂抢月饼和一般的秒杀是不太一样的,你很难见到这样只恶心人不妨碍机器的验证措施了……
    针对饼厂而言,你把 W3C 再翻几页没准就会写了。写网页时需要提供一些脚本让浏览器来跑,这样就有了“动作”。抢月饼时,你自己给浏览器提供一些脚本来跑,浏览器就会执行你要的“动作”。这个脚本语言叫做 js ……
    简单吧。所以比起技术,要吃该厂月饼,价值观比较重要。
    hlg002
        35
    hlg002  
       2016-09-29 17:56:48 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5333 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 07:48 · PVG 15:48 · LAX 23:48 · JFK 02:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.