mirror of
https://github.com/SocksPls/hltv-api
synced 2025-04-30 15:43:07 +00:00
Fixed issues with NaN for team id and added extra player stats for get_match_stats
This commit is contained in:
parent
3242687d98
commit
3daf90de9d
1 changed files with 17 additions and 4 deletions
21
main.py
21
main.py
|
@ -41,7 +41,7 @@ def _monthNameToNumber(monthName: str):
|
||||||
monthName = "August"
|
monthName = "August"
|
||||||
return datetime.datetime.strptime(monthName, '%B').month
|
return datetime.datetime.strptime(monthName, '%B').month
|
||||||
|
|
||||||
def get_parsed_page(url, delay=0.5):
|
def get_parsed_page(url, delay=0.5, max_trys = 100):
|
||||||
# This fixes a blocked by cloudflare error i've encountered
|
# This fixes a blocked by cloudflare error i've encountered
|
||||||
headers = {
|
headers = {
|
||||||
"referer": "https://www.hltv.org/stats",
|
"referer": "https://www.hltv.org/stats",
|
||||||
|
@ -53,8 +53,18 @@ def get_parsed_page(url, delay=0.5):
|
||||||
}
|
}
|
||||||
|
|
||||||
time.sleep(delay)
|
time.sleep(delay)
|
||||||
|
req = requests.get(url, headers=headers, cookies=cookies)
|
||||||
|
|
||||||
return BeautifulSoup(requests.get(url, headers=headers, cookies=cookies).text, "lxml")
|
try_number = 1
|
||||||
|
while req.status_code == 403: ## 'blocked' error code
|
||||||
|
time.sleep(delay)
|
||||||
|
req = requests.get(url, headers=headers, cookies=cookies)
|
||||||
|
try_number += 1
|
||||||
|
if try_number == max_trys:
|
||||||
|
break
|
||||||
|
|
||||||
|
results = BeautifulSoup(req.text, "lxml")
|
||||||
|
return results
|
||||||
|
|
||||||
def get_parsed_page_matches(url, delay=0.5, max_trys = 100):
|
def get_parsed_page_matches(url, delay=0.5, max_trys = 100):
|
||||||
# This fixes a blocked error when trying to get game results page
|
# This fixes a blocked error when trying to get game results page
|
||||||
|
@ -71,7 +81,7 @@ def get_parsed_page_matches(url, delay=0.5, max_trys = 100):
|
||||||
req = requests.get(url, headers=headers, cookies=cookies)
|
req = requests.get(url, headers=headers, cookies=cookies)
|
||||||
|
|
||||||
try_number = 1
|
try_number = 1
|
||||||
while req.status_code == 403:
|
while req.status_code == 403: ##'blocked' error code
|
||||||
time.sleep(delay)
|
time.sleep(delay)
|
||||||
req = requests.get(url, headers=headers, cookies=cookies)
|
req = requests.get(url, headers=headers, cookies=cookies)
|
||||||
try_number += 1
|
try_number += 1
|
||||||
|
@ -553,13 +563,16 @@ def get_match_stats(match_id):
|
||||||
results = get_parsed_page_matches(url)
|
results = get_parsed_page_matches(url)
|
||||||
|
|
||||||
match_stats['match-id'] = match_id
|
match_stats['match-id'] = match_id
|
||||||
match_stats['match_type'] = results.find('div', attrs={'class': 'padding preformatted-text'}).text.strip().split('\n')[2]
|
match_stats['match_type'] = results.find('div', attrs={'class': 'padding preformatted-text'}).text.strip().split('\n')[0]
|
||||||
|
match_stats['match_stage'] = results.find('div', attrs={'class': 'padding preformatted-text'}).text.strip().split('\n')[2]
|
||||||
|
|
||||||
player_stats = results.find_all('tr', attrs={'class': ''})
|
player_stats = results.find_all('tr', attrs={'class': ''})
|
||||||
for i, player in enumerate(player_stats[0:10]):
|
for i, player in enumerate(player_stats[0:10]):
|
||||||
|
|
||||||
match_stats[f'player{i}_id'] = player.find('a', attrs = {'class': 'flagAlign no-maps-indicator-offset'}).get('href').split('/')[2]
|
match_stats[f'player{i}_id'] = player.find('a', attrs = {'class': 'flagAlign no-maps-indicator-offset'}).get('href').split('/')[2]
|
||||||
match_stats[f'player{i}_rating'] = player.find('td', attrs = {'class': "rating text-center"}).text
|
match_stats[f'player{i}_rating'] = player.find('td', attrs = {'class': "rating text-center"}).text
|
||||||
|
match_stats[f'player{i}_kast'] = player.find('td', attrs = {'class': "kast text-center"}).text
|
||||||
|
match_stats[f'player{i}_adr'] = player.find('td', attrs = {'class': "adr text-center"}).text
|
||||||
return match_stats
|
return match_stats
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue