Проблема в том, что мне нужно подключиться к странице внутренней сети, которая запрашивает у меня логин и пароль для моего внешнего сертификата (pendrive).
Я пытался:
from bs4 import BeautifulSoup, SoupStrainer
import requests
import ssl
url = "https://intranet.website.i.need.to.connect"
page = requests.get(url, verify=True, cert='C:\\Users\\mmm\\AppData\\Local\\Continuum\\anaconda3\\lib\\site-packages\\certifi\\cacert.pem')
data = page.text
soup = BeautifulSoup(data)
for link in soup.find_all('a'):
print(link.get('href'))
Я также пытался загрузить сертификат, щелкнув по замку (IE), и экспортировать его как файл .cer. Я также попытался изменить завершение с сохранением блокнота в формате UTF-8 и заменой параметра cert = '' в приведенном выше коде.
Я также попытался это сделать:
import ssl
from requests import Session
from bs4 import BeautifulSoup as bs
server = 'https://intranet.website/'
#connection = httplib.HTTPSConnection(server, '443', timeout=60,
context=ssl.SSLContext(ssl.PROTOCOL_TLSv1))
with Session() as s:
site = s.get('%s/login' % server, timeout=60, verify=False)
bs_content = bs(site.content, "html.parser")
token = bs_content.find("input", {"name":"csrf_token"})["value"]
#login_data = {"username": "xxx", "password": "xxx"}
s.post("%s/login" % server, login_data)
home_page = s.get(server)
print(home_page.content)
Но этоне работал
SSLError: HTTPSConnectionPool(host='intranet.website', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')])")))
или
Error: [('PEM routines', 'get_name', 'no start line'), ('SSL routines', 'SSL_CTX_use_PrivateKey_file', 'PEM lib')]