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

写一个自动抢购的脚本,需要学哪些方面知识?

  •  
  •   0139 · 2018-03-18 19:51:17 +08:00 · 16437 次点击
    这是一个创建于 2469 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一些抢购活动需要在网页上刷新、选几个商品型号等等操作

    学到能干这些事的程度,需要学哪些方面的知识,不太懂

    20 条回复    2018-03-19 10:06:10 +08:00
    wafm
        1
    wafm  
       2018-03-18 20:19:20 +08:00   ❤️ 1
    1.选取一门语言作为基础,例如 python.

    2.以爬虫为例,学习 HTTP/POST/GET 协议等知识.

    3.一些电商有反爬虫和自动化,比如验证码,手机验证等等这些都是比较棘手的问题.
    Zzzzzzzzz
        2
    Zzzzzzzzz  
       2018-03-18 20:19:59 +08:00   ❤️ 1
    随便一门语言

    需要很多账户
    golmic
        3
    golmic  
       2018-03-18 20:41:18 +08:00 via Android
    层主写过京东的抢购。公众号 pydatame 有我的联系方式
    churchmice
        4
    churchmice  
       2018-03-18 20:57:24 +08:00 via Android
    @wafm 如果不考虑反爬虫这种,是不是把最后提交给服务器的 post 的参数分析下,然后 Python 造个虫发个 post 就行了?
    Mavious
        5
    Mavious  
       2018-03-18 21:12:53 +08:00 via iPhone   ❤️ 1
    唔,我是萌新。
    我也有这个需求,于是在 v2 上球了个大神 15 分钟速写版爬虫。
    然后再在速写版上大改特改,一通猛修,现在已经完成整个流程的一半,后半截有点儿思路但是还没写成功…

    根据我折腾的经验——幸好网站没有反爬,没有 csrf,没有验证码——
    没那么难,F12 分析下 get 了啥,post 了啥,那些 post 的值是怎么变化的,有没有规律……然后构造字典 post 出去就行了,很稳很方便。

    我的后半截为什么有思路没成功?因为 post 的数据有一条键值我看不懂,不知道哪里来的,每次提交都会变化,找不到规律。所以卡住了。

    用 post 效率最高,但要学分析,这需要丰富的实战经验。我还没有…

    还有种方法,绝对不会被反爬—— seleinum 模拟操纵,怎么都不会被发现了。我杯具的被卡在安装环境上了。

    seleinum 有浏览器 ide 版,可以录动作,无脑操作很轻松。
    Shmiky
        6
    Shmiky  
       2018-03-18 21:16:51 +08:00   ❤️ 1
    看到这个头像以为是我自己,银仙。
    hardman
        7
    hardman  
       2018-03-18 21:21:25 +08:00 via Android   ❤️ 1
    http 协议和 Python 就可以了,然后了解一下爬虫库,不是很难但是要想掌握多做一些联系,希望可以帮助到你,再学一些正则
    redtea
        8
    redtea  
       2018-03-18 21:30:36 +08:00
    法律
    DeweyReed
        9
    DeweyReed  
       2018-03-18 22:02:22 +08:00   ❤️ 2
    刚好研究过,在几毫秒中抢东西,一分钟几百万上下,还是爬虫吧。不过主流网站都防爬,还得研究登陆 cookie 什么。
    其次可以用 seleinum 和 splinter 类似的网页测试工具,可以做到模拟操作。我用起来很爽。没有遇到什么楼上的搭环境之类的问题。
    再傻瓜一点可以用 AutoHotKey、按键精灵之类硬编码也可以。。
    wafm
        10
    wafm  
       2018-03-18 22:08:55 +08:00
    @churchmice 理论上就是如此啊,我们平时下单购买 都是提交对应的参数交给平台的后端去处理
    hanzichi
        11
    hanzichi  
       2018-03-18 23:06:41 +08:00   ❤️ 1
    简单的写个用户脚本或者 chrome 扩展就可以搞定
    复杂的话需要分析 http 协议
    mztql
        12
    mztql  
       2018-03-19 00:32:01 +08:00 via iPhone
    上手最快可能是按键精灵?正经了解 post.get ,其他在模拟参数、反爬过程中可能要对 js 有了解,至于验证码交给平台或是自己写识别库,如果模拟操作的话抢购的速度还是慢点吧
    churchmice
        13
    churchmice  
       2018-03-19 08:54:54 +08:00 via Android   ❤️ 1
    @Mavious 这个我知道,你正常流程提交之前查看网页源代码,里面有一些 hidden field 是用来给服务器维护状态用的,你爬之前先要来一次 get 请求,把这些 field 从你网页里面提取出来
    qanniu
        14
    qanniu  
       2018-03-19 09:03:20 +08:00 via iPhone
    @DeweyReed 最近也在玩,cookies 做几个常用网站签到。请问您是部署的 headless 吗?用的哪个 driver ?
    Mavious
        15
    Mavious  
       2018-03-19 09:21:24 +08:00
    @mztql
    按键精灵绝对不是新人最快上手的工具( PS:我是萌新)。

    我早期引用过按键精灵的一些函数写 VBS,略懂一些。
    按键 [只] 适合处理奇葩国产特色,譬如网游外挂、找不到窗口句柄无法定位、根据周围的颜色来确定游戏人物的走路方向……都是国产特色需求,所以十分适合一些纯正国产网站。

    但是对于无界面高级操作,就按键精灵非常弱鸡了。譬如 cookies 处理,保持会话,验证码,后台静默运行,多线程……按键做起来都很困难。因为按键实际上是模拟操纵网页,前后台分开的!不额外处理后台无法运行,所以效率特别低。

    而且按键的函数远没有 py 好用,数学计算、匹配、循环基本没有。语法乱来,很不规范,我转学 py 时吃了大亏,老是语法错误。用按键点击一个 js 按键,穷尽各种 click 方法都点不进去。换做 py,post 一下就好了。

    最重要的是,各种正经语言都有 gayhub 的内容可以抄袭,按键只有按键论坛这么个一亩三分地……有些需求搜不到,抄都没处抄。

    新人入坑,按需求分析用那种语言吧。处理网游等国产特色就用按键;高强度运行且要求速度的,还是 py 这种正经语言好。
    luoway
        16
    luoway  
       2018-03-19 09:40:27 +08:00
    前端说一下思路:
    1.window.reload 刷新
    2.localStorage 存储执行脚本,eval 执行
    3.click 选型号

    小白上手大概 2 小时。
    熟手编码 10 分钟。
    luoway
        17
    luoway  
       2018-03-19 09:45:25 +08:00
    @luoway
    上面只能单次执行,重复需要手动
    补充:
    4.window.open()父页面控制子页面
    5.setInterval 循环定时
    DeweyReed
        18
    DeweyReed  
       2018-03-19 09:52:15 +08:00
    @qanniu 这个我帮不了了。。研究了 cookie 后觉得太麻烦,就用 seleinum 和 splinter 模拟网页了。。
    ctro15547
        19
    ctro15547  
       2018-03-19 09:55:02 +08:00   ❤️ 1
    想要简单+效率要求没那么高的话,请百度无头浏览器,再选一门语言例如 java,然后磕 20 分钟说明文档,手动登陆弄一些 cookies 开始写 估计 30 分钟写完,开 10 个左右开始重复操作。 这样你一秒钟大概会有 50 次以上的操作吧。剩下的就是怎么解决你 IP 代理的问题了。
    aver4vex
        20
    aver4vex  
       2018-03-19 10:06:10 +08:00
    用 seleinum 写爬虫还是不推荐的。我用他写过陆金所的自动交易脚本。基本上没什么效果。加载的资源太多,很影响效率。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2733 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 02:35 · PVG 10:35 · LAX 18:35 · JFK 21:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.