В настоящее время у меня есть следующий код, df2 = df [0] ограничивает код сбором данных только для 1 игры в эту соответствующую дату. Я пытаюсь выяснить, как собрать данные о нескольких играх, которые произошли в один и тот же день.
Идея состоит в том, чтобы извлечь данные о матчах для всех игр за один день и продолжить работу для всей страницы
Например, таблицы [20] возвращаются на html ссылки
1) href = "/ matchs / 2338970 / north-vs-mad-lions-dreamhack-open-leipzig-2020
2) href = "/ matchs / 2338968 / heroi c -vs-mad-lions-dreamhack-open-leipzig-2020
Я пробовал следующее:
for i in range(len(df2)):
df2[i] = df2[i]
, но он не обновляет каждую переменную (teamchosen, select, maps), а просто повторяет данные первых совпадений для других совпадений (см. рисунок) ![enter image description here](https://i.stack.imgur.com/zwiXl.png)
team_id = 8362
for i in range(0,1):
i = i*100
url = "https://www.hltv.org/results?offset={}&team={}".format(i,team_id)
res = requests.get(url)
soup = bs(res.content, 'lxml')
tables = soup.find_all("div", {"class": "results-sublist"})
index = 0
list_dfs = []
for table in tables:
df = pd.DataFrame(columns=["match", "teamchoose", "chosen", "maps", "team", "opponent", "date"])
df2 = pd.read_html(str(table))
df2 = df2[0]
link = table.find('a', href=True)
link = "https://www.hltv.org/" + link.get('href')
res = requests.get(link)
soup = bs(res.content, 'lxml')
temp = soup.find_all("div", {"class": "padding"})
date = date = pd.to_datetime(int(soup.select(".timeAndEvent div")[0]['data-unix'])*1000000)
out = re.findall(r'<div>\d\.(.*?)</div>', str(temp))
dict_choices = {"teamchoose": [], "chosen": [], "maps": []}
for choice in out[0:6]:
split = choice.strip(" ").split(" ")
dict_choices["teamchoose"].append(" ".join(split[:-2]))
dict_choices["chosen"].append(split[-2])
dict_choices["maps"].append(split[-1])
# df = df.append(dict_choices, True)
# dict_choices = {"turn": [], "choice": [], "maps": []}
try:
left = out[6]
split = left.strip(" ").split(" ")
dict_choices["teamchoose"].append(split[2])
dict_choices["chosen"].append(split[2])
dict_choices["maps"].append(split[0])
except:
pass
df = df.append(pd.DataFrame.from_dict(dict_choices, orient='index').transpose())
df["opponent"] = df2[2].iloc[0]
df["team"] = df2[0].iloc[0]
df["match"] = index
df['date'] = date
list_dfs.append(df)
index +=1
df_out = pd.concat(list_dfs)
df_out = df_out[['match','date','team','opponent','teamchoose','chosen','maps']]
df_out.to_csv("{}_vetoes.csv".format(team_name),index=False)
print(tabulate(df_out, headers='keys', tablefmt='psql'))