|
import json |
|
|
|
import requests |
|
from bs4 import BeautifulSoup |
|
|
|
|
|
def get_json_format_data(): |
|
url = "https://open-llm-leaderboard-open-llm-leaderboard.hf.space/" |
|
response = requests.get(url) |
|
soup = BeautifulSoup(response.content, "html.parser") |
|
|
|
script_elements = soup.find_all("script") |
|
json_format_data = json.loads(str(script_elements[1])[31:-10]) |
|
return json_format_data |
|
|
|
|
|
def get_datas(data): |
|
for component_index in range( |
|
0, 50, 1 |
|
): |
|
try: |
|
result_list = [] |
|
i = 0 |
|
columns = data["components"][component_index]["props"]["headers"] |
|
|
|
while True: |
|
try: |
|
results = data["components"][component_index]["props"]["value"]["data"][i] |
|
|
|
model_fullname_index = ( |
|
columns.index("fullname") |
|
if "fullname" in [col.lower() for col in columns] |
|
else -3 |
|
) |
|
|
|
try: |
|
results_json = { |
|
"T": results[0], |
|
"Model": results[model_fullname_index], |
|
} |
|
|
|
if ( |
|
len(columns) < 20 |
|
): |
|
break |
|
|
|
for col_index, col_name in enumerate(columns[2:], start=2): |
|
results_json[col_name] = results[col_index] |
|
|
|
except IndexError: |
|
break |
|
result_list.append(results_json) |
|
i += 1 |
|
except IndexError: |
|
return result_list |
|
except (KeyError, TypeError): |
|
continue |
|
|
|
return result_list |
|
|