推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
pythonfan
V2EX  ›  Python

应该从哪几个方面着手优化一个秒杀器呢?

  •  
  •   pythonfan · Oct 29, 2014 · 6780 views
    This topic created in 4223 days ago, the information mentioned may be changed or developed.
    在捣鼓一个秒杀器,想实现的功能就是监控网址抢拍。目前是页面定时刷新,然后用beautifulsoup来解析目标页面,过滤目标实现的(自动填单暂时还没实现)。监控多个网址的时候,就是循环这个列表,比如,解析一个页面2秒,10个地址跑完就是20秒。有没有其他更好的方案呢?或者目前这个方案想跑得更快,该如何优化呢?
    37 replies    2014-10-31 11:19:29 +08:00
    pimin
        1
    pimin  
       Oct 29, 2014 via iPhone
    1.开多线程,每个查询一个线程。
    akira
        2
    akira  
       Oct 29, 2014
    每个地址单独开个线程来监控吧
    gs038538
        3
    gs038538  
       Oct 29, 2014 via Android
    关键是 抢的到
    pythonfan
        4
    pythonfan  
    OP
       Oct 29, 2014
    @pimin
    @akira
    多谢~
    pythonfan
        5
    pythonfan  
    OP
       Oct 29, 2014
    @gs038538 嗯,下一步准备做自动下单,每一步都要优化,否则真抢不到。。。
    limbo0
        6
    limbo0  
       Oct 29, 2014
    前几天那个说不要在淘宝拍卖的帖子难道在指楼主
    gs038538
        7
    gs038538  
       Oct 29, 2014
    @pythonfan 哈哈,是啊~~抢不到,再怎么优化不都是0吗?
    no13bus
        8
    no13bus  
       Oct 29, 2014
    @pythonfan celery
    imn1
        9
    imn1  
       Oct 29, 2014
    bs慢,想快首先换 lxml 或其他更快的dom解析,能用regex就更好,因为载入dom树比载入文本耗时
    exceloo
        10
    exceloo  
       Oct 29, 2014
    用js...
    chemzqm
        11
    chemzqm  
       Oct 29, 2014
    多进程多代理,要是同时开抢,你一个循环刚开始人家都抢完了
    20150517
        12
    20150517  
       Oct 29, 2014
    beautifulsoup光这处理速度就已经秒了,这玩意
    1. 要服务器离秒的服务器近
    2. 用python太慢,最好直接c语言
    TheLamb
        13
    TheLamb  
       Oct 30, 2014
    这双十一快到了,LZ加油,到时候给我们测试一下
    ClownQiang
        14
    ClownQiang  
       Oct 30, 2014
    同求测试。。。
    unfurl
        15
    unfurl  
       Oct 30, 2014
    没用的…
    关键时候页面能不能打开都是问题
    cdxem713
        16
    cdxem713  
       Oct 30, 2014
    感觉解析一个页面两秒太慢了,按理说不会这么长时间的,你的解析是指请求-响应-解析的一整个流程么?
    cdxem713
        17
    cdxem713  
       Oct 30, 2014
    开多线程,然后挂VPN不停自动切换VPN地址会快很多
    pythonfan
        18
    pythonfan  
    OP
       Oct 31, 2014
    @limbo0 哪个帖子?没看到啊
    pythonfan
        19
    pythonfan  
    OP
       Oct 31, 2014
    @gs038538 努力试了才知道嘛~最后如果秒不到,只能说技不如人了。。。
    pythonfan
        20
    pythonfan  
    OP
       Oct 31, 2014
    @no13bus celery还没用过,不知道是否适合这样的场景。。。
    pythonfan
        21
    pythonfan  
    OP
       Oct 31, 2014
    @imn1 多谢,到时换lxml 试试
    pythonfan
        22
    pythonfan  
    OP
       Oct 31, 2014
    @exceloo 单js能搞?
    pythonfan
        23
    pythonfan  
    OP
       Oct 31, 2014
    @chemzqm 要用代理么?我现在直接本机在跑。。。
    pythonfan
        24
    pythonfan  
    OP
       Oct 31, 2014
    @20150517 c语言不熟悉。。。只能先python试试看吧,服务器的话打算打听下,在同个机房租个空间跑程序,这样应该会快些吧。
    pythonfan
        25
    pythonfan  
    OP
       Oct 31, 2014
    @TheLamb 水平还太菜啊,跟专业秒家比,估计汤都没的喝,哈哈~
    pythonfan
        26
    pythonfan  
    OP
       Oct 31, 2014   ❤️ 1
    @unfurl 这个就看人品了,咱打不开,人家也打不开啊,哈哈
    pythonfan
        27
    pythonfan  
    OP
       Oct 31, 2014
    @cdxem713 之前不够严谨,随便举得例子,刚刚看了下,整个请求-响应-解析流程大概0.3-0.5秒的样子。请问不停自动切换VPN地址是为了啥呢?
    exceloo
        28
    exceloo  
       Oct 31, 2014
    @pythonfan 可以,油猴脚本,就是浏览器要一直开着
    exceloo
        29
    exceloo  
       Oct 31, 2014
    @pythonfan 你也可以用易语言,黑产链都用这玩意写秒杀器。
    unfurl
        30
    unfurl  
       Oct 31, 2014
    @pythonfan 我帮朋友写过抢nike限量发售的鞋子,用的是selenium,选的vps跟网站延迟5ms以内;不太热门的款式,成功率七八成,热门的鞋子…… 发售前一小时网页就几乎打不开了
    cdxem713
        31
    cdxem713  
       Oct 31, 2014
    @pythonfan 不换IP的话这么高的请求频率应该很容易被封吧,不太理解秒杀器的原理,好像和爬虫差不多?
    pythonfan
        32
    pythonfan  
    OP
       Oct 31, 2014
    @cdxem713 嗯,和爬虫类似啊,加个自动填单提交
    cdxem713
        33
    cdxem713  
       Oct 31, 2014
    @pythonfan 是爬虫的话,同一个IP并发请求太多肯定会被封的,之前做过稳定点的就是,开多个线程并发请求,然后隔几分钟暂停这些线程,切换VPN地址,再开始线程,这种就不容易被封了。
    pythonfan
        34
    pythonfan  
    OP
       Oct 31, 2014
    @exceloo 易语言应该还没python快吧?。。。
    pythonfan
        35
    pythonfan  
    OP
       Oct 31, 2014
    @unfurl 发售前一小时。。。这是大家都开始开挂的节奏啊。。。
    pythonfan
        36
    pythonfan  
    OP
       Oct 31, 2014
    @cdxem713 多谢,看来切换vpn也必须上啊,不过目前测试阶段还没被封,哈哈
    cdxem713
        37
    cdxem713  
       Oct 31, 2014
    @pythonfan 可以先试试大并发会不会被封,这个东西每个网站也有不同。这类垂直爬虫,我觉得解析速度比较次要,提高request/response的速度,然后在安全的前提下提高并发数才比较关键。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5359 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 79ms · UTC 05:59 · PVG 13:59 · LAX 22:59 · JFK 01:59
    ♥ Do have faith in what you're doing.