爬取单场比赛赔率数据的python代码
import requests
from bs4 import BeautifulSoup
import pandas as pd
#-----------------------
def fb_gid_getExt_oz4clst(ds,clst):
i=0;
ds['pwin0'],ds['pdraw0'],ds['plost0']=clst[i],clst[i+1],clst[i+2]
i=i+3;
ds['pwin9'],ds['pdraw9'],ds['plost9']=clst[i],clst[i+1],clst[i+2]
i=i+3;
ds['vwin0'],ds['vdraw0'],ds['vlost0']=clst[i],clst[i+1],clst[i+2]
i=i+3;
ds['vwin9'],ds['vdraw9'],ds['vlost9']=clst[i],clst[i+1],clst[i+2]
i=i+3;
ds['vback0'],ds['vback9']=clst[i],clst[i+1]
i=i+2;
ds['vwin0kali'],ds['vdraw0kali'],ds['vlost0kali']=clst[i],clst[i+1],clst[i+2]
i=i+3;
ds['vwin9kali'],ds['vdraw9kali'],ds['vlost9kali']=clst[i],clst[i+1],clst[i+2]
return ds
def lst4objs_txt(xobjs,fltLst=[]):
clst=[]
for x in xobjs:
#css=x.text.replace('\n','')
css=str_flt(x.get_text(),fltLst) #
c20=css.split(' ')
for c in c20:
if c!='':clst.append(c)
return clst
def str_flt(dss,xlst):
for x in xlst:
dss=dss.replace(x,'')
return dss
def df_2ds8xlst(df,ds,xlst):
for xss in xlst:
ds[xss]=df[xss]
return ds
#-----------------------
def fb_gid_getExt_oz4htm(htm,bars,ftg=''):
bs=BeautifulSoup(htm,'html5lib') # 'lxml'
x10=bs.find_all('tr',ttl='zy')
xdatsign=['gid','cid','cname','pwin0','pdraw0','plost0','pwin9','pdraw9','plost9','vwin0','vdraw0','vlost0','vwin9','vdraw9','vlost9',
'vback0','vback9',
'vwin0kali','vdraw0kali','vlost0kali','vwin9kali','vdraw9kali','vlost9kali','gset','mplay','mtid','gplay','gtid', 'qj','qs','qr','kwin','kwinrq','tweek','tplay']
xdatnill=['','','', 0,0,0,0,0,0, 0,0,0,0,0,0, 0,0, 0,0,0,0,0,0,'','','','','', '-1','-1','0','-1','-1', '','' ]
df=pd.DataFrame(columns=xdatsign)
ds=pd.Series(xdatnill,index=xdatsign)
xc,gid=0,bars['gid']
xlst=['gset','mplay','mtid','gplay','gtid', 'qj','qs','qr','kwin','kwinrq','tplay','tweek']
for xc,x in enumerate(x10):
#print('\n@x\n',xc,'#',x.attrs)
x2=x.find('td',class_='tb_plgs');#print(x2.attrs)
ds['gid'],ds['cid'],ds['cname']=gid,x['id'],x2['title'] #