def run(self): count=1 while self.quitFlag: r = requests.get('http://trade.500.com/sfc/') r.encoding='gb2312' # r.encoding='utf-8' tree = html.fromstring(r.text) serialNo =tree.xpath('//span[contains(@id,"expect_tab")]/a[contains(@class,"on")]/@data-val')[0] print serialNo print 'ha haaha ha' base_find = dataBase.find(serialNo) if base_find is not None: print "[count: %d, time: %s] update serial:%s 's data......... "% (count,time.strftime('%H:%M:%S',time.localtime(time.time())),serialNo) aSerial_old = dict2ASerial(base_find) for teamPair in aSerial_old.teamPairs: teamPair.xinShui.build(teamPair.xinShuiUrl) ratio= Ratio() teamPair.willianRatio.append(ratio.build(teamPair.ratioUrl,u'威廉希尔')) ratio= Ratio() teamPair.ladbrokesRatio.append(ratio.build(teamPair.ratioUrl,u'Ladbrokes (立博)')) ratio= Ratio() teamPair.bet365Ratio.append(ratio.build(teamPair.ratioUrl,u'Bet365')) ratio= Ratio() teamPair.interRatio.append(ratio.build(teamPair.ratioUrl,u'Interwetten (英特)')) ratio= Ratio() teamPair.snaiRatio.append(ratio.build(teamPair.ratioUrl,u'SNAI')) dataBase.update(aSerial_old) else: print u'add a new Serial...' aSerial_new = self.buildASerial(r, serialNo, tree) dataBase.update(aSerial_new) self.wait() count=count+1
def getResult(self): r = requests.get('http://kaijiang.500.com/sfc.shtml') r.encoding='gb2312' tree = html.fromstring(r.text) serialNo =tree.xpath('//span[@class="iSelectBox"]/a[@class="iSelect"]/text()')[0] print "latest opened serialNo:",serialNo noResults = dataBase.filterNoResult() for noResult in noResults: aSerial_old = dict2ASerial(noResult) print "begin write %s 's vs result..." %aSerial_old._id if int(aSerial_old._id) > int(serialNo): print "%s are not game over!" %aSerial_old._id continue r = requests.get('http://kaijiang.500.com/shtml/sfc/'+aSerial_old._id+'.shtml') r.encoding='gb2312' print 'http://kaijiang.500.com/shtml/sfc/'+aSerial_old._id+'.shtml' tree = html.fromstring(r.text) tmp =tree.xpath('//tr/td/span[@class="cfont5 "]/text()') print tmp for i, content in enumerate(aSerial_old.teamPairs): content.vsResult=tmp[i] dataBase.update(aSerial_old) print "end write %s 's vs result" %aSerial_old._id