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

Fehler beim Ausführen der Demo mit Python

Fehler:

Traceback (jüngste Aufforderung zuletzt):

  Datei "GrabzItClient.py", Zeile 6, in

    grabzIt.SaveTo("documents / result.docx")

  Datei "C: \ Programme \ Python36 \ lib \ site-packages \ GrabzIt \ GrabzItClient.py", Zeile 235, in SaveTo

    id = self.Save()

  Datei "C: \ Programme \ Python36 \ lib \ site-packages \ GrabzIt \ GrabzItClient.py", Zeile 209, in Save

    obj = self._take (sig, callBackURL)

  Datei "C: \ Programme \ Python36 \ lib \ site-packages \ GrabzIt \ GrabzItClient.py", Zeile 223, in _take

    Rückgabe von self.HTTPPost (self.request.url, self.request.options._getParameters (self.applicationKey, sig, callBackURL, 'html', quote (self.request.data))

  Datei "C: \ Programme \ Python36 \ lib \ site-packages \ GrabzIt \ GrabzItClient.py", Zeile 629, in HTTPPost

    h.endheaders ()

  Datei "C: \ Programme \ Python36 \ lib \ http \ client.py", Zeile 1234, in den 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: \ Programme \ 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 APPLICATION KEY und APPLICATION SECRET erhalten.)

aus GrabzIt importieren GrabzItClient

 

grabzIt = GrabzItClient.GrabzItClient (APPLICATION KEY, APPLICATION SECRET)

grabzIt.HTMLToDOCX(" Hallo Welt! ") 

grabzIt.SaveTo("documents / result.docx") 

 

Können 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. 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 wird in Ordnung ausgeführt, wenn ich den anderen PC ändere, der keinen Proxyserver 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 so ändern können, dass er die Verwendung von Proxyservern ermöglicht.

Wenn es möglich ist, werden wir uns mit einem Fix bei Ihnen melden. Sie können es selbst versuchen, wenn Sie möchten, da alle unsere Kunden 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 von hier: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

Anschließend können Sie die Proxy-URL Ihres Proxy-Servers mithilfe der neuen SetLocalProxy-Methode festlegen. Beispiel:

grabzIt.SetLocalProxy ("http: // 123.123.123.123: 21231")

Bitte lassen Sie uns jetzt wissen, wie es geht und wir werden bald ein neues Release veröffentlichen!

Beantwortet vom GrabzIt Support am 21. August 2018

Danke für die Antwort.

ich ersetzte der GrabzItClient.py und änderte meine Quelle:

 

 

grabzIt = GrabzItClient.GrabzItClient (APPLICATION KEY, APPLICATION SECRET)

grabzIt.SetLocalProxy ("http: //xxx@jp.xxxxx.com: yyyyyy@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 = self.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
    Rückgabe von 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: ein byteähnliches Objekt ist erforderlich, nicht 'str'

 

gleiche Fehlermeldung habe ich auch geändert 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, möglicherweise habe ich den falschen Proxy eingestellt.

Ich habe den Proxy auf "http: // the_other_proxy_server: port" geändert und die Fehlermeldung wurde:

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 = self.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
    Rückgabe von 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: \ Programme \ Python36 \ lib \ http \ client.py", Zeile 1234, in den 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: \ Programme \ 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 folgendermaßen angeben: http://username:password@example.com:12335

Beantwortet vom GrabzIt Support am 22. August 2018

Ja, ich habe meinen Benutzernamen und mein Passwort (Frage am Mittwoch, 22 August, 2018 09: 34: 43 AM) wie folgt angegeben:

http://username:password@example.com:12335

Der Benutzername lautet E-Mail-Adresse (xxx@jp.xxxxx.com), daher habe ich zu xxx% 40jp.xxxxx.com gewechselt

aber es ist die gleiche Fehlermeldung: TypeError: ein byteähnliches Objekt ist erforderlich, nicht 'str'

Beantwortet von anonym am 22. August 2018

Entschuldigung, ich habe Ihre vorherige Antwort verpasst. Ich denke, dies ist ein Python 3-Problem und habe einen Fix veröffentlicht, der den Fehler beheben sollte. Bitte können Sie GrabzItClient.py erneut aktualisieren von: 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 finde eine 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 244, in SaveTo

    id = self.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

    Rückgabe von 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 aufgefangen hat. Bitte aktualisieren Sie Ihren Code von hier aus: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

Da dies Open Source ist, können Sie alle Verbesserungen, die Sie an Github vornehmen möchten, debuggen und festschreiben. 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 glauben zu wissen, worum es geht, aber es wird erforderlich sein, einen Teil des Codes neu zu schreiben. Wir werden uns dann bei Ihnen melden. Hoffnung in 24 Stunden.

Beantwortet vom GrabzIt Support am 22. August 2018

Ich glaube, wir haben das Problem behoben! Die neueste Version finden 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 = self.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
    Rückgabe von 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-Autorisierung', 'Basic' + encodedAuth)
  Datei "C: \ Programme \ Python36 \ lib \ http \ client.py", Zeile 1201, in putheader
    CannotSendHeader () auslösen
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 haben 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 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.

Übrigens, haben Sie den Benutzernamen getestet, der E-Mail lautet wie xxx@yyy.com?

Beantwortet von anonym am 23. August 2018

Nein, das musste nicht richtig codiert und decodiert werden. Vielleicht ist das das Problem.

Beantwortet vom GrabzIt Support am 23. August 2018