Простой сканер для очистки базы данных МКБ-11 с использованием запросов APIPython

Программы на Python
Ответить
Anonymous
 Простой сканер для очистки базы данных МКБ-11 с использованием запросов API

Сообщение Anonymous »

Я попытался сделать так, чтобы этот простой сканер сканировал всю базу данных МКБ-11 (https://icd.who.int/browse/2024-01/foun ... #455013390) и собирал все названия и описания всех болезней, но он продолжает останавливаться на самом верхнем уровне дерева ссылок и не спускается по дереву в различные ветви, их подветви и так далее. Что происходит не так?
import requests

# Configuration
token_endpoint = 'https://icdaccessmanagement.who.int/connect/token'
api_base_url = 'http://id.who.int/icd/entity/1435254666'
client_id = 'XXXX' # Replace with your client_id or set it as an environment variable
client_secret = 'XXX' # Replace with your client_secret or set it as an environment variable
scope = 'icdapi_access'
grant_type = 'client_credentials'

# Get the OAUTH2 token

# Set data to post
payload = {'client_id': client_id, 'client_secret': client_secret, 'scope': scope, 'grant_type': grant_type}

# Make request
r = requests.post(token_endpoint, data=payload, verify=False).json()
token = r['access_token']

# Access ICD API
uri = 'https://id.who.int/icd/entity/455013390'

def crawler(uri):
# HTTP header fields to set
headers = {'Authorization': 'Bearer '+token, 'Accept': 'application/json', 'Accept-Language': 'en', 'API-Version': 'v2'}

# Make request
r = requests.get(uri, headers=headers, verify=False).json()

# Print the result
try: print(r['title']['@value'], r['fullySpecifiedName']['@value'])
except: pass
try: print(r['definition']['@value'])
except: pass
try: print(r['child'])
except: pass

# Return children
try: return r['child']
except: return None

url_list = crawler(uri)
for url in url_list: url_list += crawler(url)


Подробнее здесь: https://stackoverflow.com/questions/792 ... i-requests
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»