首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【每周一坑】让程序替你等待

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

作者头像
Crossin先生
发布2018-04-17 09:54:51
6450
发布2018-04-17 09:54:51
举报

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

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

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

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

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

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

基本思路:

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

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-11-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Crossin的编程教室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档