Poni domande su come acquisire o convertire pagine Web o HTML into immagini, documenti CSV, PDF o DOCX nonché su come convertire i video into GIF animate che utilizzano la nostra API.
errore:
Traceback (ultima chiamata più recente):
File "GrabzItClient.py", riga 6, in
prendilo.SaveTo("documenti/risultato.docx")
File "C:\Programmi\Python36\lib\site-packages\GrabzIt\GrabzItClient.py", riga 235, in SaveTo
id = sé.Save()
File "C:\Programmi\Python36\lib\site-packages\GrabzIt\GrabzItClient.py", riga 209, in Save
oggetto = self._take(sig, callBackURL)
File "C:\Programmi\Python36\lib\site-packages\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-packages\GrabzIt\GrabzItClient.py", riga 629, in HTTPPost
h.endheaders()
File "C:\Program Files\Python36\lib\http\client.py", riga 1234, nelle intestazioni finali
self._send_output(message_body, encode_chunked=encode_chunked)
File "C:\Program Files\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.porta), self.timeout, self.indirizzo_origine)
File "C:\Program Files\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
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno 11001] getaddrinfo non riuscito
fonte: (Ho installato GrabzIt e ho ottenuto la CHIAVE DELL'APPLICAZIONE e il SEGRETO DELL'APPLICAZIONE)
da GrabzIt importa GrabzItClient
grabzIt = GrabzItClient.GrabzItClient(CHIAVE DELL'APPLICAZIONE, SEGRETO DELL'APPLICAZIONE)
prendilo.HTMLToDOCX(" Ciao mondo! ")
prendilo.SaveTo("documenti/risultato.docx")
potresti dirmi cosa devo fare?
Benvenuto nella community!
Di solito a socket.gaierror: [Errno 11001] getaddrinfo non riuscito viene causato quando il codice viene chiamato da dietro un firewall o un proxy. Assicurati che l'applicazione abbia accesso alla porta 80.
Grazie per la risposta.
Sì, è il problema del proxy. Funziona bene quando cambio l'altro PC che non ha proxy.
Come può funzionare con il proxy?
Questa sarà una nuova funzionalità. Stiamo cercando di modificare il client Python per abilitare l'uso dei server proxy.
Se è possibile ti ricontatteremo con una soluzione. Puoi provarci tu stesso, se vuoi, dato che tutti i nostri client sono open source: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py
Abbiamo aggiunto la nuova funzionalità. Basta scaricare il file GrabzItClient.py e sostituire la tua copia da qui: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py
Puoi quindi impostare l'URL proxy del tuo server proxy utilizzando il nuovo metodo SetLocalProxy, ad esempio:
grabzIt.SetLocalProxy("http://123.123.123.123:21231")
Per favore, fateci sapere come va e presto faremo una nuova versione!
Grazie per la risposta.
Ho sostituito GrabzItClient.py e ho cambiato la mia fonte:
grabzIt = GrabzItClient.GrabzItClient(CHIAVE DELL'APPLICAZIONE, SEGRETO DELL'APPLICAZIONE)
grabzIt.SetLocalProxy("http://xxx@jp.xxxxx.com:yyyyyyy@zzz.proxy.zzz.zzzzzzz.com:8080")
prendilo.HTMLToDOCX(" Ciao mondo! ")
prendilo.SaveTo("documenti/risultato.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
prendilo.SaveTo("risultato.docx")
File "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", riga 487, in SaveTo
id = sé.Save()
File "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", riga 435, in Save
oggetto = 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", riga 1307, in HTTPPost
headers['Proxy-Authorization'] = 'Base' + base64.b64encode(auth)
File "C:\Programmi\Python36\lib\base64.py", riga 58, in b64encode
codificato = binascii.b2a_base64(s, newline=False)
TypeError: è richiesto un oggetto simile a byte, non 'str'
stesso messaggio di errore anche se sono cambiato Imposta proxy 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"
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
prendilo.SaveTo("risultato.docx")
File "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", riga 487, in SaveTo
id = sé.Save()
File "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", riga 435, in Save
oggetto = 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", riga 1327, in HTTPPost
h.endheaders()
File "C:\Program Files\Python36\lib\http\client.py", riga 1234, nelle intestazioni finali
self._send_output(message_body, encode_chunked=encode_chunked)
File "C:\Program Files\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:\Program Files\Python36\lib\http\client.py", riga 919, in _tunnel
messaggio.strip()))
Errore OSE: connessione al tunnel non riuscita: 407 Autenticazione proxy richiesta
È necessario specificare il nome utente e la password in questo modo: http://username:password@example.com:12335
Sì, ho specificato il mio nome utente e la mia password (domanda mercoledì 22 agosto 2018 09:34:43) in questo modo:
http://username:password@example.com:12335
il nome utente è l'indirizzo e-mail (xxx@jp.xxxxx.com), quindi l'ho cambiato in xxx%40jp.xxxxx.com
ma è lo stesso messaggio di errore: TypeError: è richiesto un oggetto simile a byte, non 'str'
Scusa, mi ero persa 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
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
prendilo.SaveTo("risultato.docx")
File "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", riga 244, in SaveTo
id = sé.Save()
File "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", riga 218, in Save
oggetto = 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", riga 661, in HTTPPost
headers['Proxy-Authorization'] = 'Base' + encodedAuth
TypeError: deve essere str, non byte
Ok, l'abbiamo decodificato intoasci. Non stiamo usando Python 3, motivo per cui ci ha colto 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 apportare eventuali miglioramenti a Github. Poiché non abbiamo accesso alla tua configurazione.
Molte grazie per il vostro aiuto.
Errore OSE: connessione al tunnel non riuscita: 407 Autenticazione proxy richiesta
Proverò a eseguire il debug.
Pensiamo di sapere qual è il problema, tuttavia richiederà la riscrittura di parte del codice. Quindi ti contatteremo una volta terminato. Speriamo in 24 ore.
Credo che abbiamo risolto il problema! Puoi ottenere la versione più recente qui: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py
Grazie per la risposta.
Nuovo messaggio di errore:
Traceback (ultima chiamata più recente):
File "GrabzIt_test.py", riga 54, in
prendilo.SaveTo("risultato.docx")
File "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", riga 243, in SaveTo
id = sé.Save()
File "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", riga 217, in Save
oggetto = 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", riga 629, in HTTPPost
h = self._getConnection()
File "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", riga 679, in _getConnection
h.putheader('autorizzazione proxy', 'Base' + encodedAuth)
File "C:\Program Files\Python36\lib\http\client.py", riga 1201, in putheader
solleva CannotSendHeader()
http.client.CannotSendHeader
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 ancora non funziona per te, dovrai eseguire il debug del codice.
Grazie per la risposta.
Effettuerò il debug della mia fonte.
A proposito, hai testato il nome utente che è Email come xxx@yyy.com?