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 <modulo>

grabzIt.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)

grabzIt.HTMLToDOCX("<html> <body> <h1> Hello World! </h1> </body> </html>")

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

potresti dirmi cosa devo fare?

Chiesto da anonimo martedì 21 agosto 2018 06:54:17

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 di GrabzIt Support martedì, 21 agosto, 2018 07:01:51 AM

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 di anonimo martedì 21 agosto 2018 09:30:49

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 correzione. Puoi provare tu stesso se vuoi poiché tutti i nostri clienti sono open source: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

Risposta di GrabzIt Support martedì, 21 agosto, 2018 12:20:04 PM

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 di GrabzIt Support martedì, 21 agosto, 2018 05:38:30 PM

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")

grabzIt.HTMLToDOCX("<html> <body> <h1> Hello World! </h1> </body> </html>")

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

utente:xxx@jp.xxxxx.com

password:yyyyyyy

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

porta:8080

messaggio di errore:

Traceback (ultima chiamata più recente):
File "GrabzIt_test.py", riga 54, in <modulo>
grabzIt.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 SetLocalProxy 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 anonima mercoledì 22 agosto 2018 12:34:43

scusate, potrei aver 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 <modulo>
grabzIt.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 anonima mercoledì 22 agosto 2018 12:40:52

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

Risposta di GrabzIt Support mercoledì 22 agosto, 2018 05:38:10

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 anonima mercoledì 22 agosto 2018 05:50:49

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

Risposta di GrabzIt Support mercoledì 22 agosto, 2018 06:40:47

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 <modulo>

grabzIt.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 anonima mercoledì 22 agosto 2018 08:39:24

Ok, l'abbiamo decodificato into ascii. Non stiamo usando Python 3, motivo per cui ci ha sorpreso. Si prega di aggiornare il 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 mercoledì 22 agosto, 2018 09:22:01

Molte grazie per il vostro aiuto.

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

Proverò a eseguire il debug.

Risposta anonima mercoledì 22 agosto 2018 10:23:31

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 mercoledì 22 agosto, 2018 12:15:22 PM

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 mercoledì 22 agosto, 2018 05:30:43 PM

Grazie per la risposta.

Nuovo messaggio di errore:

Traceback (ultima chiamata più recente):
File "GrabzIt_test.py", riga 54, in <modulo>
grabzIt.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 di anonimo mercoledì 22 agosto 2018 11:52:17

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 di GrabzIt Support giovedì, 23 August, 2018 11: 41: 44 AM

Grazie per la risposta.

Debug la mia fonte.

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

Risposta di anonimo giovedì, 23 agosto, 2018 11: 56: 46 AM

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

Risposta di GrabzIt Support giovedì, 23 August, 2018 11: 59: 36 AM