写了个监视酷讯火车票的 Python 程序
K*K
posted @ Fri, 29 Jan 2010 23:49:28 +0800
in 未归类
with tags
train ticket python 火车票
, 5766 readers
受不了了,买火车票买不到,只好盯上黄牛票了,可是没法不停地刷页面啊,刚刚就错过了一个发布了 20 分钟的黄牛票,打电话回去时已经打不通了。。。-_-#
就写了个程序来解决这个问题,粘了一堆代码(参考太多,头一次写这种东西,原作者勿怪),总算成了,可能有 bug,欢迎提交 patch 或者更好的解决办法。
可以通过修改下面的参数来修改程序执行:
url = "http://piao.kuxun.cn/beijing-jinggangshan/" # 把火车票的搜索地址粘在这里,这里假设是北京到井冈山的 key = "2张" # 搜索关键字,我得俩人啊。。。 sequence = 60#60 * 5 # 搜索间隔,给服务器压力别太大,每分钟一次就行了。
#!/usr/bin/python # encoding: utf-8 import urllib2 import mailbox import time import os import re from sgmllib import SGMLParser class URLListName(SGMLParser): is_a="" name=[] def start_a(self, attrs): self.is_a=1 def end_a(self): self.is_a="" def handle_data(self, text): if self.is_a: self.name.append(text) url = "http://piao.kuxun.cn/beijing-jinggangshan/" key = "2张" sequence = 60#60 * 5 request = urllib2.Request(url) request.add_header('User-Agent', 'Mozilla/5.0') opener = urllib2.build_opener() data = opener.open(request).read() ticket_name = URLListName() ticket_name.feed(data) cache=[] while 1: try: print "beign retrive" data = opener.open(request).read() ticket_name.feed(data) print "beign scan" for result in ticket_name.name: if result and result.find(key) >= 0: if result in cache: pass else: print "found:" + result cache.append(result) print "scan finished, begin sleep " + str(sequence) + " seconds." time.sleep(sequence) except: raise
Jan 31, 2010 12:22:41 AM
请问你代码的字体是什么?
Jan 31, 2010 04:17:47 PM
@tony: 不是很清楚,不同浏览器下的设置应该不一样,我看了下 css,是:
font-family: Consolas, Monaco, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important;
应该是依次查过去的,有哪个字体用哪个。