摘要:文件的全路徑返回對(duì)象獲取所有即將讀取的的全路徑獲取場(chǎng)次獲取賽事類型獲取比賽日期獲取主隊(duì)客隊(duì)名稱獲取勝平負(fù)賠率刪除首尾兩個(gè)無效數(shù)據(jù)比分結(jié)果以及比分結(jié)果賠率更新勝平負(fù)勝其他平其他負(fù)其他更新總進(jìn)球勝其他負(fù)其他場(chǎng)次賽事類型比賽日期比
#encoding:utf-8 #!/usr/local/bin/python2.7 import urllib2 from bs4 import BeautifulSoup import MySQLdb as mdb import sys import re import os #URL:HTML文件的全路徑 #返回:BeautifulSoup對(duì)象 def getSoup(url): return BeautifulSoup(open(url)) #獲取所有即將讀取的HTML的全路徑 def fileNames(): temp_f = open("/root/bet/names.txt") temp = [] for line in temp_f: temp.append("/root/bet/urls/"+line.strip()) temp_f.close() return temp #獲取場(chǎng)次 def getScr(soup): scr = [] temp =[] for trs in soup.findAll("tr"): for tds in trs.findAll("td",{"width":"50"}): temp.append(tds.string) lt = len(temp)/4 for i in range(lt): scr.append(temp[4*i+3]) return scr #獲取賽事類型 def getLea(soup): league = [] for item in soup.findAll("tr"): for item1 in item.findAll("td",{"width":"70"}): league.append(item1.string.encode("utf-8")) return league #獲取比賽日期 def getGmdate(soup): temp = [] gmdate = [] for item in soup.findAll("tr"): for item1 in item.findAll("td",{"width":"61"}): temp.append(item1) temp =temp[3:] for item in temp: gmdate.append(re.search("w{4}-w{2}-w{2}",str(item)).group()) return gmdate #獲取主隊(duì)客隊(duì)名稱 def getTeam(soup): team=[] for item in soup.findAll("tr"): for teams in item.findAll("a",{"class":"dui"}): team.append(teams.string.strip().encode("utf-8")) return team #獲取勝平負(fù)賠率 def getSpfpl(soup): spfpl =[] temp = [] for trs in soup.findAll("tr"): for tds in trs.findAll("span"): temp.append(tds.string) #刪除首尾兩個(gè)無效數(shù)據(jù) temp =temp[1:-1] for i in range(len(temp)): for item in temp[7*i+4:7*i+7]: spfpl.append(item) return spfpl #6.比分結(jié)果以及比分結(jié)果賠率 def getResult(soup): bfjg = [] temp = [] for trs in soup.findAll("tr"): for item in trs.findAll("div",{"align":"center"}): for item1 in item.findAll("strong"): bfjg.append(item1.string.encode("utf-8")) return bfjg if __name__=="__main__": reload(sys) sys.setdefaultencoding("utf-8") names = fileNames() conn=mdb.connect(host="localhost",user="root",passwd="oracle",db="betdb",port=3306) cur = conn.cursor() SQL="insert into results(id,lea,gmd,hos,gue,win,dog,los,res,odd) values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)" #更新勝平負(fù) sql_update3="update results set spf=3 where res="1:0" or res="2:0" or res="2:1" or res="3:0" or res="3:1" or res="3:2" or res="4:0" or res="4:1" or res="4:2" or res="5:0" or res="5:1" or res="5:2" or res="勝其他";" sql_update1="update results set spf=1 where res="0:0" or res="1:1" or res="2:2" or res="3:3" or res="平其他";" sql_update0="update results set spf=0 where res="0:1" or res="0:2" or res="1:2" or res="0:3" or res="1:3" or res="2:3" or res="0:4" or res="1:4" or res="2:4" or res="0:5" or res="1:5" or res="2:5" or res="負(fù)其他";" #更新總進(jìn)球 sql_updatezjq0="update results set zjq=0 where res="0:0"" sql_updatezjq1="update results set zjq=1 where res="1:0" or res="0:1"" sql_updatezjq2="update results set zjq=2 where res="2:0" or res="1:1" or res="0:2"" sql_updatezjq3="update results set zjq=3 where res="3:0" or res="2:1" or res="1:2" or res="0:3"" sql_updatezjq4="update results set zjq=4 where res="4:0" or res="3:1" or res="2:2" or res="1:3" or res="0:4"" sql_updatezjq5="update results set zjq=5 where res="5:0" or res="4:1" or res="3:2" or res="2:3" or res="0:5" or res="1:4"" sql_updatezjq6="update results set zjq=6 where res="5:1" or res="3:3" or res="4:2" or res="2:4" or res="1:5"" sql_updatezjq7="update results set zjq=7 where res="勝其他" or res="負(fù)其他"" for htmlfilename in names: soup = getSoup(htmlfilename) print "Reading %s now ..." % htmlfilename #1.場(chǎng)次 scr = getScr(soup) #2.賽事類型 lea = getLea(soup) #3.比賽日期 gmd = getGmdate(soup) #4.比賽隊(duì)伍 tea = getTeam(soup) #5.勝平負(fù)賠率 spf = getSpfpl(soup) #6.比賽結(jié)果 bfj = getResult(soup) #7.形成場(chǎng)次日期唯一id ids=[] for i in range(len(scr)): ids.append(gmd[i]+"-"+scr[i]) #裝配結(jié)果集 res =[] for i in range(len(scr)): res.append(ids[i]) res.append(lea[i]) res.append(gmd[i]) res.append(tea[2*i]) res.append(tea[2*i+1]) res.append(spf[3*i]) res.append(spf[3*i+1]) res.append(spf[3*i+2]) res.append(bfj[2*i]) res.append(bfj[2*i+1]) l =len(res)/10 for i in range(l): for item in res[10*i:10*i+1]: cur.execute(SQL,res[10*i:10*i+10]) i+=1 cur.execute(sql_update3) cur.execute(sql_update1) cur.execute(sql_update0) cur.execute(sql_updatezjq0) cur.execute(sql_updatezjq1) cur.execute(sql_updatezjq2) cur.execute(sql_updatezjq3) cur.execute(sql_updatezjq4) cur.execute(sql_updatezjq5) cur.execute(sql_updatezjq6) cur.execute(sql_updatezjq7)
#SQL創(chuàng)建語句 CREATE TABLE `results` ( `id` char(20) NOT NULL, `lea` char(100) DEFAULT NULL, `gmd` date DEFAULT NULL, `hos` char(100) DEFAULT NULL, `gue` char(100) DEFAULT NULL, `win` float(5,2) DEFAULT NULL, `dog` float(5,2) DEFAULT NULL, `los` float(5,2) DEFAULT NULL, `res` char(10) DEFAULT NULL, `odd` float(5,2) DEFAULT NULL, `zjq` tinyint(4) DEFAULT NULL, `spf` tinyint(4) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/37361.html
摘要:所以我不得不做的就是把每天的賠率數(shù)據(jù)導(dǎo)入到我自己的數(shù)據(jù)庫(kù),根據(jù)一定的運(yùn)算法則,將可能性篩選出來,然后我再做進(jìn)一步的判斷。 首先,我擁有這個(gè)導(dǎo)入賠率的需求,并且,我需要的是所有的數(shù)據(jù)賠率,我需要把某些臟賠率(極有可能不會(huì)出現(xiàn)的賠率,誤導(dǎo)彩迷的賠率)刪除,并且我需要知道這些賠率的比分,刪除這些賠率,可以逆推正確比分以及賠率的區(qū)間。 所以我不得不做的就是把每天的賠率數(shù)據(jù)導(dǎo)入到...
摘要:獲取場(chǎng)次以及分?jǐn)?shù)合集比如比分對(duì)應(yīng)代碼表對(duì)應(yīng)對(duì)應(yīng)勝其他對(duì)應(yīng)平其他對(duì)應(yīng)負(fù)其他因此場(chǎng)次和比分結(jié)合為,場(chǎng)次信息比分標(biāo)題勝其他平其他負(fù)其他場(chǎng)次比分之后遍歷得到結(jié)果集如場(chǎng)次為位數(shù)字,第一個(gè)為主場(chǎng)比分,中間為冒號(hào),最后一個(gè)為客場(chǎng)比分平其他 #encoding:utf-8 import urllib2 from bs4 import BeautifulSoup website = http://ca...
摘要:創(chuàng)建比賽結(jié)果數(shù)據(jù)庫(kù)導(dǎo)入結(jié)果到導(dǎo)入到數(shù)據(jù)庫(kù)中更新勝負(fù)數(shù)據(jù)插入更新勝場(chǎng)勝其他更新負(fù)場(chǎng)負(fù)其他更新平局平其他查看更新結(jié)果 創(chuàng)建比賽結(jié)果數(shù)據(jù)庫(kù) CREATE TABLE `results` ( `id` char(14) NOT NULL, `scr` char(3) NULL , `lea` char(100) NULL , `gmd` date NULL , `hos` char...
摘要:創(chuàng)建數(shù)據(jù)庫(kù)以及表,并導(dǎo)入數(shù)據(jù)創(chuàng)建數(shù)據(jù)庫(kù)創(chuàng)建表勝分?jǐn)?shù)比分平負(fù)導(dǎo)入數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù)中 創(chuàng)建數(shù)據(jù)庫(kù)以及表,并導(dǎo)入數(shù)據(jù) --創(chuàng)建數(shù)據(jù)庫(kù) CREATE DATABASE `data` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; --創(chuàng)建表 --win w 勝 0 分?jǐn)?shù) 1 比分 --draw d 平 --lose l 負(fù) C...
閱讀 3686·2021-11-12 10:36
閱讀 3831·2021-09-22 15:48
閱讀 3543·2019-08-30 15:54
閱讀 2592·2019-08-29 16:44
閱讀 2364·2019-08-29 16:08
閱讀 2408·2019-08-29 16:06
閱讀 1281·2019-08-29 15:21
閱讀 3171·2019-08-29 12:39