专栏首页Crossin的编程教室【每周一坑】让程序替你等待

【每周一坑】让程序替你等待

管挖不管埋的每周一坑又来了,今天是个实用的坑。

在1999年的时候,曾经有人搞过一场真人秀,就是给你一些钱和“电子货币”,把你关在一个可以上网的房间里。你需要借助互联网生存72小时。放在今天来看,这活动简直so easy。死宅们表示只要有网,72天也不在话下。可见这些年,互联网的发展有多快。

不过网上的东西并不是无限量的。在网上消费的人,或多或少都有过“刷”的体验:刷票、抢单等等。这其中有一类,是在特定时间内放出一定量的货品,比如小米手机、春运时的火车票等。这些供不应求的货品会在极短时间内被抢光。还有一类,则是在不定的时间,随机放出一些货品,比如演唱会开票、某些车次后续放出的余票、等待补货的商品等。这类不像前者那么紧张,但一旦有货后,仍然可能在很短时间内售罄。所以就需要隔三差五地在电脑前刷新页面,等待幸运的时刻到来。

这两类情况,都可以通过编程来辅助,提高抢到的概率。不过第一类需求量大,竞争激烈,所以难度也就更高。你不但要和众多眼疾手快的人争夺,还要与其他成千上万不停运行地程序较量。第二类则相对容易许多,平常一些小需求,几行简单的代码就可以解决。

所以今天要解决的问题就是:通过python去定时刷新某些网页,当有关注的信息更新时,发送提示。

我自己曾写过数次类似的代码,来解决一些小问题。包括查询12306上的余票;苹果网站上新版iPhone是否可订购;关注的演唱会是否开售;查询成绩是否公布等。

基本思路:

  1. 分析你要抓取的页面,找出要关注的信息在哪里,可以通过怎样的方式来监测。是用BeautifulSoup还是正则表达式,还是直接字符串搜索就可以解决。以查询余票为例,就是找到记录剩余票数的字段,去判断数值。
  2. 设定固定时间间隔去请求页面,做好配置,确保能够得到有效返回,且不会因为太明显的机器行为而被屏蔽。很多网站需要你在header里提供一些必要参数才会理你。
  3. 当得到预期结果时,发送通知。我通常采取的方式时,在服务器上运行脚本,然后发送邮件通知。另一种可行的方法是在本地运行,得到结果后通过发出声音之类的方式提醒。
  4. 注意记录日志,以及异常情况的处理和提示,避免默默等了很久,其实都没有正常运行。

基本就是这样,剩下的就根据你自己的需求去实现吧。

上海GDG下周末有个分享活动,嘉宾是达达的CTO,有关现在很火的众包物流领域的技术探讨。具体详情和报名见下面一篇文章内。

本文分享自微信公众号 - Crossin的编程教室(crossincode)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2015-11-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 今天,你抢到票了吗?

    今天网上开始预售除夕前一天的火车票。 这几天,办公室的小伙伴们每天准点蹲在电脑前,不停地刷新页面,可最终还是眼睁睁看着一秒之后就显示“无票”了。(╯‵□′)╯...

    Crossin先生
  • 爬虫必备工具,掌握它就解决了一半的问题

    网上爬虫的教程实在太多了,去知乎上搜一下,估计能找到不下一百篇。大家乐此不疲地从互联网上抓取着一个又一个网站。但只要对方网站一更新,很可能文章里的方法就不再有效...

    Crossin先生
  • 几个以前发过、回复过很多次、比较有用的学习资源

    最近事情有些多,所以“每周一坑”偶尔不得不跳票一下,各位莫急哈。 既然来都来了,说几个经常被问到的资源,应该还是不少人需要的。已经看过的就忽略。有其他好资源欢迎...

    Crossin先生
  • 构象搜索案例(Hyperchem)

    用户2493118
  • 茶·花·小黄脸——QQ新增表情

    腾讯ISUX
  • Facebook Graph API(1)—介绍

    Facebook提供三种low-level HTTP APIS去访问Facebook Graph. 1.Graph API 2.FQL(过期) 3.Legacy...

    八哥
  • Chrome DevTools 远程调试协议分析及实战

    Chrome DevTools 可以说是前端开发最常用的工具,无论是普通页面、移动端 webview、小程序、甚至 node 应用,都可以用它来调试。

    winty
  • 正式启动丨2020腾讯犀牛鸟「云开发」校园技术布道师养成计划

    十八般武艺,非一时练就。腾讯犀牛鸟「云开发」校园技术布道师养成计划,由老鸟带你飞,不仅炼就全栈开发技能,更能习得技术布道技巧!60 天,从菜鸟技术布道师到出师,...

    腾讯云开发TCB
  • 使用函数BAPISDORDER_GETDETAILEDLIST读取S/4HANA中Sales Order行项目数据

    事务码MM03查看物料主数据,如下图所示的行项目数据,包含物料ID,描述信息,数量,单价等等:

    Jerry Wang
  • 用Python将一个列表分割成小列表

    py3study

扫码关注云+社区

领取腾讯云代金券