Der Code unten führt den folgenden Fehler importieren:Import: nicht Name CertificateError
Traceback (most recent call last):
File "./python_PAN_traffic_scraper.py", line 4, in <module>
import urllib3
File "/usr/lib/python2.7/site-packages/urllib3/__init__.py", line 10, in <module>
from .connectionpool import (
File "/usr/lib/python2.7/site-packages/urllib3/connectionpool.py", line 29, in <module>
from ssl import CertificateError
ImportError: cannot import name CertificateError
Was mache ich falsch? Ich möchte zur Firewall-Portalschnittstelle navigieren, die ein selbstsigniertes Zertifikat verwendet, und beim Versuch, mithilfe einer bestimmten API-URL und eines API-Schlüssels zur Site zu navigieren, einen Zertifikatfehler ausgeben. Letztendlich möchte ich den Code so erweitern, dass er das XML durchsucht, um nach bestimmten Tags und Attributen (Quelle/Ziel/Ports/etc) zu suchen.
#!/usr/bin/env python
import ssl
import urllib
import urllib3
import xml.etree.ElementTree as ET
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE
DAL = "1.1.1.1"
CHI = "2.2.2.2"
firewall_ip = [ 'Dallas', 'Chicago' ]
datacenter=raw_input('Which firewall do you want traffic logs for? \"DAL\" or \"CHI\"?: ')
contents = ""
cmd = "/api/?type=log&log-type=traffic&query=(receive_time geq '2017/1/22 23:00:00')"
key = "&key=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa="
url = "https://"+pan_ip[0]+urllib3.urlencode(cmd)+key
response = urllib3.urlopen(url, verify=False)
contents = ET.fromstring(response.read())
if DC is "DAL":
print contents
else:
print "Goodbye"
#result = ""
#for i in contents[0][0]:
# if i[0][0].tag == entry:
# for j in i[0][0]:
# if j.tag == 'src' and j.text == src:
# result = i.attrib['name']
#print result
Können Sie bitte näher erläutern, welche Fehlerbehebungsschritte Sie bisher ausprobiert haben und diese Frage zur Frage hinzufügen? –
'CertificateError' existiert im Standard' ssl' Modul. Sie würden nicht zufällig eine Datei namens 'ssl.py' oder einen Modulordner namens' ssl' in Ihrem Pfad haben, der anstelle des Standard-Pfades importiert wird, oder? – slezica
Harshdeep - Ich habe keine spezifischen Debugging-Schritte versucht. Wenn Sie etwas haben, das Sie gerne empfehlen würden, wäre ich gerne bereit. slezica - Ich habe 'env' in meinem Terminalfenster überprüft und sehe nichts wie Sie beschrieben. Soweit ich weiß, ist alles Standard. – utiliz3