Я пытаюсь очистить данные с сайта, чтобы преуспеть. сейчас он работает нормально, но когда он ищет кого-то вроде Серхио Родригеса, появляется несколько имен (https://basketball.realgm.com/search?q=Sergio+Rodriguez), поэтому он пропускает имя и выбрасывает «Нет международной таблицы для Серхио Родригеса». Как выбрать тот, который играл в НБА из этого списка, и продолжить с чистого листа для каждой игры и таблицы расширенной статистики, чтобы преуспеть? в этом случае Родригес является вторым при поиске его имени.
import requests
from bs4 import BeautifulSoup
import pandas as pd
playernames=['Carlos Delfino', 'Sergio Rodriguez']
result = pd.DataFrame()
for name in playernames:
fname=name.split(" ")[0]
lname=name.split(" ")[1]
url="https://basketball.realgm.com/search?q={}+{}".format(fname,lname)
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
try:
table1 = soup.find('h2',text='International Regular Season Stats - Per Game').findNext('table')
table2 = soup.find('h2',text='International Regular Season Stats - Advanced Stats').findNext('table')
df1 = pd.read_html(str(table1))[0]
df2 = pd.read_html(str(table2))[0]
commonCols = list(set(df1.columns) & set(df2.columns))
df = df1.merge(df2, how='left', on=commonCols)
df['Player'] = name
except:
print ('No international table for %s.' %name)
df = pd.DataFrame([name], columns=['Player'])
result = result.append(df, sort=False).reset_index(drop=True)
cols = list(result.columns)
cols = [cols[-1]] + cols[:-1]
result = result[cols]
result.to_csv('international players.csv', index=False)