тарабарщина вместо файла urllib.request

#python-3.x

#python-3.x

Вопрос:

Я пытаюсь отправить запрос с urllib.request, чтобы получить файл CSV, но вместо файла я получаю HTML с тарабарщиной в нем. вот мой код:

 import urllib.request

url = ('https://data.gov.il/dataset/covid-19/resource/a2b2fceb-3334-44eb-b7b5-9327a573ea2c/'
       'download/corona_deceased_ver_0028.csv')

with urllib.request.urlopen(url) as url:
     csv = url.read()
     print(csv)
  

Ответ №1:

Чтобы получить правильный ответ, вам нужно установить User-Agent HTTP заголовок и rbzid cookie (возможно, вам придется скопировать его из вашего браузера):

 import requests


url = 'https://data.gov.il/dataset/covid-19/resource/a2b2fceb-3334-44eb-b7b5-9327a573ea2c/download/corona_deceased_ver_0028.csv'
cookies = {
    'rbzid': 'PtkzXD64cWBOiLLfQ9GPun/ZTK7c6Qn AZsK og/lNnrjGl0uXKvDfHW4xvSLZnEyZEN6D4FuXEHq/pcN71VYGOkyHNtBb89VwjskA6LumbcIThp0tn89XEbVtlwuu8h918KOzuIx 3ad5BGETL0b3Ak1REM7nItp1tcCD63Qat1f8nVaAlsDLfrOUf/Lu1XAz/eArm8WboiU0I6ccS0tu7vHebosdk4luT2KVL IYNL6N6nCf9himXu4BDOn74Z',
}
headers = {'User-Agent' : 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:80.0) Gecko/20100101 Firefox/80.0'}

print(requests.get(url, headers=headers, cookies=cookies).content.decode('utf-8'))
  

С принтами:

 gender,age_group,Ventilated,Time_between_positive_and_hospitalization,Length_of_hospitalization,Time_between_positive_and_death
זכר,75-84,0,0,4.0,4
נקבה,<65,1,0,2.0,2
נקבה,85 ,0,0,4.0,4
נקבה,85 ,0,2.0,6.0,8
נקבה,75-84,1,0,8.0,8
זכר,75-84,1,-1.0,14.0,8

...and so on.