Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何连接到要求我使用证书登录的intranet网页?_Python_Ssl_Python Requests_Certificate_Token - Fatal编程技术网

Python 如何连接到要求我使用证书登录的intranet网页?

Python 如何连接到要求我使用证书登录的intranet网页?,python,ssl,python-requests,certificate,token,Python,Ssl,Python Requests,Certificate,Token,问题是,我需要连接到一个内部网页面,该页面要求我输入外部证书(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\

问题是,我需要连接到一个内部网页面,该页面要求我输入外部证书(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')]