Python3, скачать файл с URL нажатием кнопки
Мне нужно скачать файл по ссылке, как это https://freemidi.org/getter-13560
Но я не могу использовать urllib.request
или же requests
библиотека, потому что он загружает HTML, а не MIDI. Есть ли какое-нибудь решение? А также вот ссылка с самой кнопкой ссылки
1 ответ
Решение
Добавляя правильные заголовки и используя сессию, мы можем загрузить и сохранить файл, используя модуль запроса.
import requests
headers = {
"Host": "freemidi.org",
"Connection": "keep-alive",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "en-US,en;q=0.9",
}
session = requests.Session()
#the website sets the cookies first
req1 = session.get("https://freemidi.org/getter-13560", headers = headers)
#Request again to download
req2 = session.get("https://freemidi.org/getter-13560", headers = headers)
print(len(req2.text)) # This is the size of the mdi file
with open("testFile.mid", "wb") as saveMidi:
saveMidi.write(req2.content)