Я использую Python 3.7.3 и библиотеку запросов_pkcs12, чтобы очистить веб-сайт, где я должен передать сертификат и пароль, а затем загрузить и извлечь zip-файлы по ссылкам на странице. У меня первая часть работает нормально. Но когда я пытаюсь прочитать файлы, используя urllib, я получаю сообщение об ошибке.
import urllib.request
from bs4 import BeautifulSoup
import requests
from requests_pkcs12 import get
# get page and setup BeautifulSoup
# r = requests.get(url) # old non-cert method
r = get(url, pkcs12_filename=certpath, pkcs12_password=certpwd)
# find zip files to download
soup = BeautifulSoup(r.content, "html.parser")
# Read files
i = 1
for td in soup.find_all(lambda tag: tag.name=='td' and tag.text.strip().endswith('DAILY.zip')):
link = td.find_next('a')
print(td.get_text(strip=True), link['href'] if link else '') # good
zipurl = 'https:\\my.downloadsite.com" + link['href'] if link else ''
print (zipurl) # good
# Read zip file from URL
url = urllib.request.urlopen(zipurl) # ERROR on this line SSLv3 alert handshake failure
zippedData = url.read()
Я видел различные старые посты с Python 2.x о способах решения этой проблемы, но мне было интересно, что лучше способ сделать это сейчас, с новыми библиотеками в Python 3.7.x.
Ниже приведена трассировка стека ошибки.
