Я хотел загрузить все PDF-файлы с веб-сайта, а не делать это вручную, но получаю ошибку SSL - PullRequest
0 голосов
/ 09 июля 2020

Это мой фрагмент кода, и я получаю ошибку SSL при запуске этого кода. Я пытался задать задержку для кода и работал над ним, но все равно получаю ту же ошибку.

import os
import requests
from urllib.parse import urljoin
from bs4 import BeautifulSoup
url = "http://bbmp.gov.in/en/covid19bulletins"
#If there is no such folder, the script will create one automatically
folder_location = r'C:\Users\maria.fh\Documents\Automatically downloaded files'
if not os.path.exists(folder_location):os.mkdir(folder_location)

import requests
from requests.adapters import HTTPAdapter
from requests.packages.urllib3.util.retry import Retry

session = requests.Session()
retry = Retry(connect=3, backoff_factor=0.8)
adapter = HTTPAdapter(max_retries=retry)
session.mount('http://', adapter)
session.mount('https://', adapter)

session.get(url)
response = requests.get(url)
soup= BeautifulSoup(response.text, "html.parser")     
for link in soup.select("a[href$='.pdf']"):
    filename = os.path.join(folder_location,link['href'].split('/')[-1])
    with open(filename, 'wb') as f:
        f.write(requests.get(urljoin(url,link['href'])).content)

this возникло исключение SSL:

requests.exceptions.SSLError: HTTPSConnectionPool(host='dl.bbmpgov.in', port=443): Max retries exceeded with url: /covid/Covid_Bengaluru_26June_2020%20Bulletin-95%20English.pdf (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1108)')))

1 Ответ

0 голосов
/ 09 июля 2020

ваш клиент (запросы) не может проверить сертификат SSL сервера. вы можете добавить verify=False к вашему звонку: f.write(requests.get(urljoin(url,link['href']), verify=False).content). это, однако, НЕ рекомендуется . быстрый поиск в stackoverflow относительно сгенерированного сообщения об ошибке приведет вас к множеству полезных тем, которые предлагают реальные решения, например { ссылка }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...