В общем, я написал код, который должен скачивать с сайта rfbr.ru все документы всех форматов. Поначалу, когда я написал, возникали ошибки. Я дополнил. И теперь у меня проблема: код не скачивает, а просто выводит в консоль "err. conn: *такой-то документ*".
import re
import time
import twilio
from urllib.parse import quote, unquote
from requests.adapters import HTTPAdapter
from urllib3.util.retry import Retry
import requests
import os
from bs4 import BeautifulSoup
def main():
base_url = 'https://www.rfbr.ru'
download_links = set()
response = requests.get(base_url+'/rffi')
parse_text = BeautifulSoup(response.text, 'html.parser')
links = set([x.get('href') for x in parse_text.find_all(href=re.compile('^/rffi/'))])
for link in links:
time.sleep(1)
response = requests.get(base_url+link)
parse_text = BeautifulSoup(response.text, 'html.parser')
download_links.update(set([x.get('href') for x in parse_text.find_all(href=re.compile('^/rffi/getimage/'))]))
for link in download_links:
if link:
time.sleep(1)
file_name = unquote(link).rsplit('/', 1)[-1]
response = requests.get(base_url+quote(link))
try:
response = requests.get(file_name, timeout=20)
except:
print(f"err. conn: {file_name}")
continue
if response.status_code == 200:
try:
os.makedirs(os.path.dirname(file_name), exist_ok=True)
except:
raise
try:
with open(file_name, 'wb') as f:
f.write(response.content)
except:
print(f"Ошибка при создании файла\nТег: {link}")
raise
else:
print(f"{file_name} no response")
if __name__ == '__main__':
main()
Где я допустил ошибку? Какую функцию или какой оператор нужно добавить, чтобы заставить код скачивать файлы?