Хотя это правда, что страница отображается с JavaScript, JavaScript извлекает JSON файлы, к которым можно получить прямой доступ для получения нужных данных. Просто возьмите JSON и проанализируйте его, как и любой другой JSON.
import requests
# import json
r = requests.get('https://www.cdc.gov/covid-data-tracker/Content/CoronaViewJson_01/US_MAP_DATA.json')
j = r.json()
# print(json.dumps(j, indent=4)) # Print the whole JSON object
# Print data for state
for state in j['US_MAP_DATA']:
print(f"State: {state['name']}, Total cases: {state['tot_cases']}, Total death: {state['tot_death']}")
Вывод:
State: Alaska, Total cases: 2878, Total death: 23
State: Alabama, Total cases: 85906, Total death: 1567
State: Arkansas, Total cases: 41759, Total death: 442
State: American Samoa, Total cases: 0, Total death: 0
State: Arizona, Total cases: 170798, Total death: 3626
etc.
Если вы не комментируете операторы импорта и печати, Объект JSON будет напечатан с помощью кода.
Чтобы увидеть другие JSON файлы, которые могут представлять интерес, щелкните правой кнопкой мыши веб-страницу в Chrome или Firefox, выберите Inspect
, затем Network
, затем XHR
и обновите sh страницу.