Я пытаюсь написать программу Python 3, которая загрузит все файлы PDF с этого веб-сайта. В настоящее время у меня есть два кода, но ни один из них не работает.
import requests
import urllib.request
import urllib.request
import time
import re
from bs4 import BeautifulSoup
url = 'https://fraser.stlouisfed.org/title/1339#556573.html'
response = requests.get(url)
if response.status_code == 200:
print("Success")
else:
print("Failure")
soup = BeautifulSoup(response.text, 'html.parser')
for one_a_tag in soup.findAll('a',href=re.compile(r'(.pdf)')):
link = one_a_tag['href']
download_url = 'https://fraser.stlouisfed.org/title/1339'+ link
urllib.request.urlretrieve(download_url)
time.sleep(1)
Программа работает без вывода или остановки.
Вторая программа
from urllib import request
from bs4 import BeautifulSoup
import re
import os
import urllib
url="https://fraser.stlouisfed.org/title/1339#518552"
response = request.urlopen(url).read()
soup= BeautifulSoup(response, "html.parser")
links = soup.find_all('a', href=re.compile(r'(.pdf)'))
url_list = []
for el in links:
if(el['href'].startswith('http')):
url_list.append(el['href'])
else:
url_list.append("https://fraser.stlouisfed.org/title/1339/" + el['href'])
print(url_list)
for url in url_list:
print(url)
request.urlretrieve(url, r'C:/Downloads')
Для обеих программ, если я добавлю второй аргумент (filename)
в urlretrieve
, куда должны загружаться файлы PDF, он выдаст мне
[Errno 13] Отказано в доступе: ошибка «C: / Downloads».
(Я пробовал несколько вещей, чтобы решить эту ошибку, она не работает, у меня Windows). Если у меня нет второго аргумента, вторая программа продолжает работать и производит вывод, но не загружается.
Может кто-нибудь помочь, пожалуйста?