我正在用python为我的Tennislub开发一个网络爬虫,以便从数据库中的网页保存游戏结果、排名等(然后在我自己的网站上显示)。很好,我有这样的桌子:
然而,有些球队的名字很难在我的网站上很好地输出(特别是当两家俱乐部在一起的时候)
我的问题是:如果一根绳子达到一定长度,比如34,我怎么能用熊猫剪下“/”后面的所有东西
到目前为止,我的代码(以及对爬网信息的其他有效更改):
for x in range(len(teams)):
driver.get('https://baden.liga.nu/cgi-bin/WebObjects/nuLigaTENDE.woa
/wa/teamPortrait?team=' + teams[x][1])
table_games = driver.page_source
df = pd.read_html(table_games)[1]
banned = ['TSG']
f = lambda x: ' '.join([item for item in x.split() if item not in banned])
df["Heimmannschaft"] = df["Heimmannschaft"].apply(f)
df["Gastmannschaft"] = df["Gastmannschaft"].apply(f)
df = df.rename(columns={'Datum, Uhrzeit.1': 'Termin'})
df[['Datum', 'Uhrzeit']] = df.Termin.str.split(" ", expand=True, )
del df['Termin']
df = df[['Datum', 'Uhrzeit', 'Heimmannschaft', 'Gastmannschaft', 'Matches',
'Spielbericht']]
df.to_sql(con=con, name=teams[x][0]+'_Spiele', if_exists='replace')
driver.get('https://baden.liga.nu/cgi-bin/WebObjects/nuLigaTENDE.woa
/wa/groupPage?targetFed=BAD&championship=B1+S+2021&group=' + teams[x][2])
table_ranks = driver.page_source
df = pd.read_html(table_ranks)[0]
f = lambda x: ' '.join([item for item in x.split() if item not in banned])
df["Mannschaft"] = df["Mannschaft"].apply(f)
df.iloc[0:, 1:].to_sql(con=con, name=teams[x][0]+ '_Tabelle', if_exists='replace')
driver.quit()
在我的代码示例中,驱动程序会爬到不同的网站进行排名和游戏日,在这两种情况下,一些球队的名字都很长(因此我想删掉第二个球队的名字,从“/”开始)
我希望你能帮我
由于您提到只有当超过
1
个团队时,长度才会超过34
,因此简单的解决方案是首先检查长度,如果超过34
,则在/
处执行split
并获得第一个团队:只有在长度大于等于的情况下,您才能拆分并获得一线队;三十四
相关问题 更多 >
编程相关推荐