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