Stellen Sie Fragen zum Erfassen oder Konvertieren von Webseiten oder HTML into Bilder, CSV-, PDF- oder DOCX-Dokumente sowie Informationen zum Konvertieren von Videos into animierte GIFs mit unserer API.
Fehler:
Traceback (jüngste Aufforderung zuletzt):
Datei „GrabzItClient.py“, Zeile 6, in
grabzIt.SaveTo(„documents/result.docx“)
Datei „C:\Program Files\Python36\lib\site-packages\GrabzIt\GrabzItClient.py“, Zeile 235, in SaveTo
id = selbst.Save()
Datei „C:\Program Files\Python36\lib\site-packages\GrabzIt\GrabzItClient.py“, Zeile 209, in Save
obj = self._take(sig, callBackURL)
Datei „C:\Program Files\Python36\lib\site-packages\GrabzIt\GrabzItClient.py“, Zeile 223, in _take
return self.HTTPPost(self.request.url, self.request.options._getParameters(self.applicationKey, sig, callBackURL, 'html', quote(self.request.data)))
Datei „C:\Program Files\Python36\lib\site-packages\GrabzIt\GrabzItClient.py“, Zeile 629, in HTTPPost
h.endheaders()
Datei „C:\Program Files\Python36\lib\http\client.py“, Zeile 1234, in Endheadern
self._send_output(message_body, encode_chunked=encode_chunked)
Datei „C:\Programme\Python36\lib\http\client.py“, Zeile 1026, in _send_output
self.send(msg)
Datei „C:\Program Files\Python36\lib\http\client.py“, Zeile 964, in send
self.connect()
Datei „C:\Programme\Python36\lib\http\client.py“, Zeile 936, in connect
(self.host, self.port), self.timeout, self.source_address)
Datei „C:\Programme\Python36\lib\socket.py“, Zeile 704, in create_connection
für res in getaddrinfo(host, port, 0, SOCK_STREAM):
Datei „C:\Programme\Python36\lib\socket.py“, Zeile 743, in getaddrinfo
für res in _socket.getaddrinfo(Host, Port, Familie, Typ, Proto, Flags):
socket.gaierror: [Errno 11001] getaddrinfo ist fehlgeschlagen
Quelle: (Ich habe GrabzIt installiert und den ANWENDUNGSSCHLÜSSEL und das ANWENDUNGSGEHEIMNIS erhalten.)
aus GrabzIt GrabzItClient importieren
grabzIt = GrabzItClient.GrabzItClient(ANWENDUNGSSCHLÜSSEL, ANWENDUNGSGEHEIMNIS)
grabzIt.HTMLToDOCX(" Hallo Welt! ")
grabzIt.SaveTo(„documents/result.docx“)
Könnten Sie mir sagen, was ich tun soll?
Willkommen in der Gemeinschaft!
Normalerweise a socket.gaierror: [Errno 11001] getaddrinfo ist fehlgeschlagen wird verursacht, wenn der Code hinter einer Firewall oder einem Proxy aufgerufen wird. Bitte stellen Sie sicher, dass die Anwendung Zugriff auf Port 80 hat.
Danke für die Antwort.
Ja, es ist das Problem des Proxys. Es läuft einwandfrei, wenn ich den anderen PC wechsle, der keinen Proxy hat.
Wie kann es mit Proxy funktionieren?
Dies wird eine neue Funktion sein. Wir prüfen, ob wir den Python-Client ändern können, um die Verwendung von Proxyservern zu ermöglichen.
Wenn es möglich ist, werden wir uns mit einer Lösung bei Ihnen melden. Sie können es selbst ausprobieren, wenn Sie möchten, da alle unsere Clients Open Source sind: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py
Wir haben die neue Funktion hinzugefügt. Laden Sie einfach die Datei GrabzItClient.py herunter und ersetzen Sie Ihre Kopie hier: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py
Anschließend können Sie die Proxy-URL Ihres Proxyservers mithilfe der neuen SetLocalProxy-Methode festlegen, zum Beispiel:
grabzIt.SetLocalProxy("http://123.123.123.123:21231")
Bitte lassen Sie uns jetzt wissen, wie es läuft, und wir werden bald eine neue Veröffentlichung veröffentlichen!
Danke für die Antwort.
ich ersetzte die GrabzItClient.py und meine Quelle geändert:
grabzIt = GrabzItClient.GrabzItClient(ANWENDUNGSSCHLÜSSEL, ANWENDUNGSGEHEIMNIS)
grabzIt.SetLocalProxy("http://xxx@jp.xxxxx.com:yyyyyyy@zzz.proxy.zzz.zzzzzzz.com:8080")
grabzIt.HTMLToDOCX(" Hallo Welt! ")
grabzIt.SaveTo(„documents/result.docx“)
Benutzer:xxx@jp.xxxxx.com
Passwort:jjjjjjj
Proxy Server:zzz.proxy.zzz.zzzzzzz.com
Hafen:8080
Fehlermeldung:
Traceback (jüngste Aufforderung zuletzt):
Datei „GrabzIt_test.py“, Zeile 54, in
grabzIt.SaveTo(„result.docx“)
Datei „C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py“, Zeile 487, in SaveTo
id = selbst.Save()
Datei „C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py“, Zeile 435, in Save
obj = self._take(sig, callBackURL)
Datei „C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py“, Zeile 463, in _take
return self.HTTPPost(self.request.url, self.request.options._getParameters(self.applicationKey, sig, callBackURL, 'html', quote(self.request.data)))
Datei „C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py“, Zeile 1307, in HTTPPost
headers['Proxy-Authorization'] = 'Basic ' + base64.b64encode(auth)
Datei „C:\Programme\Python36\lib\base64.py“, Zeile 58, in b64encode
encoded = binascii.b2a_base64(s, newline=False)
TypeError: Es ist ein Byte-ähnliches Objekt erforderlich, nicht „str“.
Dieselbe Fehlermeldung, auch wenn ich sie geändert habe SetLocalProxy von "http://xxx@jp.xxxxx.com:yyyyyyy@zzz.proxy.zzz.zzzzzzz.com:8080"To "http://xxx%40jp.xxxxx.com:yyyyyyy@zzz.proxy.zzz.zzzzzzz.com:8080"
Entschuldigung, vielleicht habe ich den falschen Proxy eingestellt.
Ich habe den Proxy in „http://the_other_proxy_server:port“ geändert und die Fehlermeldung lautete:
Traceback (jüngste Aufforderung zuletzt):
Datei „GrabzIt_test.py“, Zeile 54, in
grabzIt.SaveTo(„result.docx“)
Datei „C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py“, Zeile 487, in SaveTo
id = selbst.Save()
Datei „C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py“, Zeile 435, in Save
obj = self._take(sig, callBackURL)
Datei „C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py“, Zeile 463, in _take
return self.HTTPPost(self.request.url, self.request.options._getParameters(self.applicationKey, sig, callBackURL, 'html', quote(self.request.data)))
Datei „C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py“, Zeile 1327, in HTTPPost
h.endheaders()
Datei „C:\Program Files\Python36\lib\http\client.py“, Zeile 1234, in Endheadern
self._send_output(message_body, encode_chunked=encode_chunked)
Datei „C:\Programme\Python36\lib\http\client.py“, Zeile 1026, in _send_output
self.send(msg)
Datei „C:\Program Files\Python36\lib\http\client.py“, Zeile 964, in send
self.connect()
Datei „C:\Programme\Python36\lib\http\client.py“, Zeile 940, in connect
self._tunnel()
Datei „C:\Programme\Python36\lib\http\client.py“, Zeile 919, in _tunnel
message.strip()))
OSError: Tunnelverbindung fehlgeschlagen: 407 Proxy-Authentifizierung erforderlich
Sie müssen Ihren Benutzernamen und Ihr Passwort wie folgt angeben: http://username:password@example.com:12335
Ja, ich habe meinen Benutzernamen und mein Passwort angegeben (Frage am Mittwoch, 22. August 2018, 09:34:43 Uhr) wie folgt:
http://username:password@example.com:12335
Der Benutzername ist die E-Mail-Adresse (xxx@jp.xxxxx.com), daher habe ich mich in xxx%40jp.xxxxx.com geändert
aber es ist die gleiche Fehlermeldung: TypeError: Es ist ein Byte-ähnliches Objekt erforderlich, nicht „str“.
Entschuldigung, ich habe Ihre vorherige Antwort verpasst. Ich denke, das ist ein Python-3-Problem und habe einen Fix veröffentlicht, der den Fehler beheben sollte. Bitte können Sie GrabzItClient.py erneut aktualisieren unter: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py
Ich habe die Python-Datei ersetzt und eine neue Fehlermeldung gefunden:
Traceback (jüngste Aufforderung zuletzt):
Datei „GrabzIt_test.py“, Zeile 54, in
grabzIt.SaveTo(„result.docx“)
Datei „C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py“, Zeile 244, in SaveTo
id = selbst.Save()
Datei „C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py“, Zeile 218, in Save
obj = self._take(sig, callBackURL)
Datei „C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py“, Zeile 232, in _take
return self.HTTPPost(self.request.url, self.request.options._getParameters(self.applicationKey, sig, callBackURL, 'html', quote(self.request.data)))
Datei „C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py“, Zeile 661, in HTTPPost
headers['Proxy-Authorization'] = 'Basic ' + encodedAuth
TypeError: muss str sein, keine Bytes
Ok, wir haben es entschlüsselt into ASCII. Wir verwenden Python 3 nicht, weshalb es uns überrascht hat. Bitte aktualisieren Sie Ihren Code hier: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py
Da es sich um Open Source handelt, können Sie gerne Fehler beheben und alle gewünschten Verbesserungen auf Github übertragen. Da wir keinen Zugriff auf Ihr Setup haben.
Vielen Dank für deine Hilfe.
OSError: Tunnelverbindung fehlgeschlagen: 407 Proxy-Authentifizierung erforderlich
Ich werde versuchen zu debuggen.
Wir gehen davon aus, dass wir das Problem kennen, es wird jedoch erforderlich sein, einen Teil des Codes neu zu schreiben. Daher werden wir Sie kontaktieren, wenn wir fertig sind. Hoffentlich in 24 Stunden.
Ich glaube, wir haben das Problem behoben! Die neueste Version erhalten Sie hier: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py
Dank für die Antwort.
Neue Fehlermeldung:
Traceback (jüngste Aufforderung zuletzt):
Datei „GrabzIt_test.py“, Zeile 54, in
grabzIt.SaveTo(„result.docx“)
Datei „C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py“, Zeile 243, in SaveTo
id = selbst.Save()
Datei „C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py“, Zeile 217, in Save
obj = self._take(sig, callBackURL)
Datei „C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py“, Zeile 231, in _take
return self.HTTPPost(self.request.url, self.request.options._getParameters(self.applicationKey, sig, callBackURL, 'html', quote(self.request.data)))
Datei „C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py“, Zeile 629, in HTTPPost
h = self._getConnection()
Datei „C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py“, Zeile 679, in _getConnection
h.putheader('proxy-authorization', 'Basic' + encodedAuth)
Datei „C:\Programme\Python36\lib\http\client.py“, Zeile 1201, im Putheader
CannotSendHeader() erhöhen
http.client.CannotSendHeader
Wir haben einige kleinere Verbesserungen vorgenommen an: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py
Und ich habe es in Python 2.7, 3.4 und 3.6 getestet und es funktioniert in allen Umgebungen, mit und ohne Proxys und mit autorisierten Proxys.
Wenn es bei Ihnen immer noch nicht funktioniert, müssen Sie den Code debuggen.
Danke für deine Antwort.
Ich werde meine Quelle debuggen.
Haben Sie übrigens den Benutzernamen getestet, bei dem es sich um eine E-Mail-Adresse wie xxx@yyy.com handelt?
Nein, ich wusste nicht, dass das richtig kodiert und dekodiert werden müsste, also ist das vielleicht das Problem.