Tools zum Erfassen und Konvertieren des Webs
GrabzIt's Online-Community

Es wird ein Fehler ausgegeben, wenn ich die Demo von Python ausführe

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?

Gefragt von Anonym am 21. August 2018

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.

Beantwortet vom GrabzIt-Support am 21. August 2018

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?

Beantwortet von Anonym am 21. August 2018

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

Beantwortet vom GrabzIt-Support am 21. August 2018

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!

Beantwortet vom GrabzIt-Support am 21. August 2018

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"

 

Beantwortet von Anonym am 22. August 2018

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

Beantwortet von Anonym am 22. August 2018

Sie müssen Ihren Benutzernamen und Ihr Passwort wie folgt angeben: http://username:password@example.com:12335

Beantwortet vom GrabzIt-Support am 22. August 2018

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“.

Beantwortet von Anonym am 22. August 2018

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

Beantwortet vom GrabzIt-Support am 22. August 2018

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

Beantwortet von Anonym am 22. August 2018

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.

Beantwortet vom GrabzIt-Support am 22. August 2018

Vielen Dank für deine Hilfe.

OSError: Tunnelverbindung fehlgeschlagen: 407 Proxy-Authentifizierung erforderlich

Ich werde versuchen zu debuggen. 

Beantwortet von Anonym am 22. August 2018

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.

Beantwortet vom GrabzIt-Support am 22. August 2018

Ich glaube, wir haben das Problem behoben! Die neueste Version erhalten Sie hier: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

Beantwortet vom GrabzIt-Support am 22. August 2018

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

 

Beantwortet von Anonym am 22. August 2018

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.

Beantwortet vom GrabzIt-Support am 23. August 2018

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?

Beantwortet von Anonym am 23. August 2018

Nein, ich wusste nicht, dass das richtig kodiert und dekodiert werden müsste, also ist das vielleicht das Problem.

Beantwortet vom GrabzIt-Support am 23. August 2018