Strumenti per acquisire e convertire il Web
La community online di GrabzIt

Lancio dell'errore quando eseguo la demo di Python

errore:

Traceback (ultima chiamata più recente):

  File "GrabzItClient.py", riga 6, in formato

    afferrare.SaveTo( "Documenti / result.docx")

  File "C: \ Programmi \ Python36 \ lib \ site-pacchetti \ GrabzIt \ GrabzItClient.py", riga 235, in SaveTo

    id = sé.Save()

  File "C: \ Programmi \ Python36 \ lib \ site-pacchetti \ GrabzIt \ GrabzItClient.py", riga 209, in Save

    obj = self._take (sig, callBackURL)

  File "C: \ Programmi \ Python36 \ lib \ site-pacchetti \ GrabzIt \ GrabzItClient.py", riga 223, in _take

    return self.HTTPPost (self.request.url, self.request.options._getParameters (self.applicationKey, sig, callBackURL, 'html', quote (self.request.data))

  File "C: \ Programmi \ Python36 \ lib \ site-pacchetti \ GrabzIt \ GrabzItClient.py", riga 629, in HTTPPost

    h.endheaders ()

  File "C: \ Programmi \ Python36 \ lib \ http \ client.py", riga 1234, nelle intestazioni

    self._send_output (message_body, encode_chunked = encode_chunked)

  File "C: \ Programmi \ Python36 \ lib \ http \ client.py", riga 1026, in _send_output

    self.send (msg)

  File "C: \ Programmi \ Python36 \ lib \ http \ client.py", riga 964, in invio

    self.connect ()

  File "C: \ Programmi \ Python36 \ lib \ http \ client.py", riga 936, in connessione

    (self.host, self.port), self.timeout, self.source_address)

  File "C: \ Programmi \ Python36 \ lib \ socket.py", riga 704, in create_connection

    per res in getaddrinfo (host, porta, 0, SOCK_STREAM):

  File "C: \ Programmi \ Python36 \ lib \ socket.py", riga 743, in getaddrinfo

    per res in _socket.getaddrinfo (host, porta, famiglia, tipo, proto, flags):

socket.gaierror: [Errno 11001] getaddrinfo non riuscito

 

fonte : (ho installato GrabzIt e ho ottenuto APPLICATION KEY e APPLICATION SECRET)

da GrabzIt importa GrabzItClient

 

grabzIt = GrabzItClient.GrabzItClient (TASTO APPLICAZIONE, SEGRETO APPLICAZIONE)

afferrare.HTMLToDOCX(" Ciao mondo! ") 

afferrare.SaveTo( "Documenti / result.docx") 

 

potresti dirmi cosa devo fare?

Chiesto da anonimo il 21 agosto 2018

Benvenuto nella community!

Di solito a socket.gaierror: [Errno 11001] getaddrinfo non riuscito è causato quando il codice viene chiamato da dietro un firewall o un proxy. Assicurarsi che l'applicazione abbia accesso alla porta 80.

Risposta del supporto GrabzIt il 21 agosto 2018

Grazie per la risposta.

Sì, è il problema del proxy. Funziona bene quando cambio l'altro PC che non ha un proxy.

Come può funzionare con il proxy?

Risposta da anonimo il 21 agosto 2018

Questa sarà una nuova funzionalità. Stiamo cercando di modificare il client Python per abilitare l'utilizzo dei server proxy.

Se possibile, ti risponderemo con una soluzione. Puoi provare tu stesso se lo desideri poiché tutti i nostri clienti sono open source: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

Risposta del supporto GrabzIt il 21 agosto 2018

Abbiamo aggiunto la nuova funzionalità. Basta scaricare il file GrabzItClient.py e sostituire la copia da qui: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

È quindi possibile impostare l'URL proxy del server proxy utilizzando il nuovo metodo SetLocalProxy, ad esempio:

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

Per favore fateci ora come va e faremo presto una nuova versione!

Risposta del supporto GrabzIt il 21 agosto 2018

Grazie per la risposta.

Ho sostituito il GrabzItClient.py e ha cambiato la mia fonte:

 

 

grabzIt = GrabzItClient.GrabzItClient (TASTO APPLICAZIONE, SEGRETO APPLICAZIONE)

grabzIt.SetLocalProxy ( "http: //xxx@jp.xxxxx.com: yyyyyyy@zzz.proxy.zzz.zzzzzzz.com: 8080")

afferrare.HTMLToDOCX(" Ciao mondo! ") 

afferrare.SaveTo( "Documenti / result.docx") 

 

utente:xxx@jp.xxxxx.com

password:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa XNUMXal

server proxy:zzz.proxy.zzz.zzzzzzz.com

porta:8080

 

messaggio di errore:

Traceback (ultima chiamata più recente):
  File "GrabzIt_test.py", riga 54, in formato
    afferrare.SaveTo( "Result.docx")
  File "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", linea 487, in SaveTo
    id = sé.Save()
  File "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", linea 435, in Save
    obj = self._take (sig, callBackURL)
  File "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", riga 463, in _take
    return self.HTTPPost (self.request.url, self.request.options._getParameters (self.applicationKey, sig, callBackURL, 'html', quote (self.request.data))
  File "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", linea 1307, in HTTPPost
    headers ['Proxy-Authorization'] = 'Basic' + base64.b64encode (auth)
  File "C: \ Programmi \ Python36 \ lib \ base64.py", riga 58, in codice b64
    codificato = binascii.b2a_base64 (s, newline = False)
TypeError: è richiesto un oggetto simile a byte, non 'str'

 

stesso messaggio di errore anche se ho cambiato ImpostaProxy Locale a partire dal "http://xxx@jp.xxxxx.com:yyyyyyy@zzz.proxy.zzz.zzzzzzz.com:8080"A "http://xxx%40jp.xxxxx.com:yyyyyyy@zzz.proxy.zzz.zzzzzzz.com:8080"

 

Risposta da anonimo il 22 agosto 2018

scusa, forse ho impostato il proxy sbagliato.

Ho cambiato il proxy in "http: // the_other_proxy_server: port" e il messaggio di errore è diventato:

Traceback (ultima chiamata più recente):
  File "GrabzIt_test.py", riga 54, in formato
    afferrare.SaveTo( "Result.docx")
  File "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", linea 487, in SaveTo
    id = sé.Save()
  File "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", linea 435, in Save
    obj = self._take (sig, callBackURL)
  File "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", riga 463, in _take
    return self.HTTPPost (self.request.url, self.request.options._getParameters (self.applicationKey, sig, callBackURL, 'html', quote (self.request.data))
  File "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", linea 1327, in HTTPPost
    h.endheaders ()
  File "C: \ Programmi \ Python36 \ lib \ http \ client.py", riga 1234, nelle intestazioni
    self._send_output (message_body, encode_chunked = encode_chunked)
  File "C: \ Programmi \ Python36 \ lib \ http \ client.py", riga 1026, in _send_output
    self.send (msg)
  File "C: \ Programmi \ Python36 \ lib \ http \ client.py", riga 964, in invio
    self.connect ()
  File "C: \ Programmi \ Python36 \ lib \ http \ client.py", riga 940, in connessione
    self._tunnel ()
  File "C: \ Programmi \ Python36 \ lib \ http \ client.py", riga 919, in _tunnel
    message.strip ()))
Errore OS: connessione al tunnel non riuscita: 407 Autenticazione proxy richiesta

Risposta da anonimo il 22 agosto 2018

È necessario specificare il nome utente e la password in questo modo: http://username:password@example.com:12335

Risposta di GrabzIt Support il 22 agosto 2018

Sì, ho specificato nome utente e password (domanda mercoledì 22 agosto 2018 09:34:43) come:

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

il nome utente è indirizzo e-mail (xxx@jp.xxxxx.com), quindi sono passato a xxx% 40jp.xxxxx.com

ma è lo stesso messaggio di errore: TypeError: è richiesto un oggetto di tipo byte, non 'str'

Risposta da anonimo il 22 agosto 2018

Scusa, ho perso la tua precedente risposta. Penso che questo sia un problema di Python 3 e ho rilasciato una correzione che dovrebbe risolvere l'errore. Puoi aggiornare di nuovo GrabzItClient.py da: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

Risposta di GrabzIt Support il 22 agosto 2018

Ho sostituito il file Python e ho trovato un nuovo messaggio di errore:

Traceback (ultima chiamata più recente):

  File "GrabzIt_test.py", riga 54, in formato

    afferrare.SaveTo( "Result.docx")

  File "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", linea 244, in SaveTo

    id = sé.Save()

  File "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", linea 218, in Save

    obj = self._take (sig, callBackURL)

  File "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", riga 232, in _take

    return self.HTTPPost (self.request.url, self.request.options._getParameters (self.applicationKey, sig, callBackURL, 'html', quote (self.request.data))

  File "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", linea 661, in HTTPPost

    headers ['Proxy-Authorization'] = 'Basic' + encodedAuth

TypeError: deve essere str, non byte

Risposta da anonimo il 22 agosto 2018

Ok, l'abbiamo decodificato into ascii. Non stiamo usando Python 3, motivo per cui ci ha colti di sorpresa. Aggiorna il tuo codice da qui: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

Poiché si tratta di open source, sentiti libero di eseguire il debug e di impegnarti in qualsiasi miglioramento tu voglia su Github. Poiché non abbiamo accesso alla tua configurazione.

Risposta di GrabzIt Support il 22 agosto 2018

Molte grazie per il vostro aiuto.

Errore OS: connessione al tunnel non riuscita: 407 Autenticazione proxy richiesta

Proverò a eseguire il debug. 

Risposta da anonimo il 22 agosto 2018

Pensiamo di sapere qual è il problema, tuttavia sarà necessario riscrivere parte del codice. Quindi ti contatteremo al termine. Speriamo in 24 ore.

Risposta di GrabzIt Support il 22 agosto 2018

Credo che abbiamo risolto il problema! Puoi ottenere l'ultima versione qui: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

Risposta di GrabzIt Support il 22 agosto 2018

Grazie per la risposta.

Nuovo messaggio di errore:

Traceback (ultima chiamata più recente):
  File "GrabzIt_test.py", riga 54, in formato
    afferrare.SaveTo( "Result.docx")
  File "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", linea 243, in SaveTo
    id = sé.Save()
  File "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", linea 217, in Save
    obj = self._take (sig, callBackURL)
  File "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", riga 231, in _take
    return self.HTTPPost (self.request.url, self.request.options._getParameters (self.applicationKey, sig, callBackURL, 'html', quote (self.request.data))
  File "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", linea 629, in HTTPPost
    h = self._getConnection ()
  File "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", riga 679, in _getConnection
    h.putheader ('proxy-autorizzazioni', 'Basic' + encodedAuth)
  File "C: \ Programmi \ Python36 \ lib \ http \ client.py", riga 1201, in putheader
    raise CannotSendHeader ()
http.client.CannotSendHeader

 

Risposta da anonimo il 22 agosto 2018

Abbiamo apportato alcuni piccoli miglioramenti a: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

E l'ho testato in Python 2.7, 3.4 e 3.6 e funziona in tutti gli ambienti, con e senza proxy e con proxy autorizzati.

Se il problema persiste, dovrai eseguire il debug del codice.

Risposta del supporto GrabzIt il 23 agosto 2018

Grazie per la risposta.

Debug la mia fonte.

A proposito, hai testato il nome utente che è Email come xxx@yyy.com?

Risposta da anonimo il 23 agosto 2018

No, non avrei dovuto codificarlo e decodificarlo correttamente, quindi forse questo è il problema.

Risposta del supporto GrabzIt il 23 agosto 2018