Faça perguntas sobre como capturar ou converter páginas da Web ou HTML into imagens, documentos CSV, PDF ou DOCX, além de como converter vídeos into GIF animado usando nossa API.
erro:
Traceback (última chamada mais recente):
Arquivo "GrabzItClient.py", linha 6, em
pegue isso.SaveTo("documentos/resultado.docx")
Arquivo "C:\Program Files\Python36\lib\site-packages\GrabzIt\GrabzItClient.py", linha 235, em SaveTo
id = eu mesmo.Save()
Arquivo "C:\Program Files\Python36\lib\site-packages\GrabzIt\GrabzItClient.py", linha 209, em Save
obj = self._take(sig, callBackURL)
Arquivo "C:\Program Files\Python36\lib\site-packages\GrabzIt\GrabzItClient.py", linha 223, em _take
retornar self.HTTPPost(self.request.url, self.request.options._getParameters(self.applicationKey, sig, callBackURL, 'html', quote(self.request.data)))
Arquivo "C:\Program Files\Python36\lib\site-packages\GrabzIt\GrabzItClient.py", linha 629, em HTTPPost
h.endheaders()
Arquivo "C:\Arquivos de Programas\Python36\lib\http\client.py", linha 1234, em cabeçalhos finais
self._send_output(message_body, encode_chunked=encode_chunked)
Arquivo "C:\Program Files\Python36\lib\http\client.py", linha 1026, em _send_output
auto.enviar(msg)
Arquivo "C:\Program Files\Python36\lib\http\client.py", linha 964, em send
self.connect()
Arquivo "C:\Arquivos de Programas\Python36\lib\http\client.py", linha 936, em conexão
(self.host,self.port), self.timeout, self.source_address)
Arquivo "C:\Program Files\Python36\lib\socket.py", linha 704, em create_connection
para res em getaddrinfo(host, porta, 0, SOCK_STREAM):
Arquivo "C:\Program Files\Python36\lib\socket.py", linha 743, em getaddrinfo
para res em _socket.getaddrinfo(host, porta, família, tipo, proto, sinalizadores):
socket.gaierror: [Errno 11001] getaddrinfo falhou
fonte:(instalei o GrabzIt e obtive CHAVE DE APLICAÇÃO e SEGREDO DE APLICAÇÃO)
de GrabzIt importar GrabzItClient
grabzIt = GrabzItClient.GrabzItClient (CHAVE DE APLICAÇÃO, SEGREDO DE APLICAÇÃO)
pegue isso.HTMLToDOCX(" Olá Mundo! ")
pegue isso.SaveTo("documentos/resultado.docx")
você poderia me dizer o que devo fazer?
Bem vindo à comunidade!
Geralmente um socket.gaierror: [Errno 11001] getaddrinfo falhou é causado quando o código está sendo chamado por trás de um firewall ou proxy. Certifique-se de que o aplicativo tenha acesso à porta 80.
Obrigado pela resposta.
Sim, é o problema do proxy. Funciona bem quando mudo o outro PC que não tem proxy.
Como pode funcionar com proxy?
Este será um novo recurso. Estamos verificando se podemos alterar o cliente Python para permitir o uso de servidores proxy.
Se for possível, entraremos em contato com você com uma solução. Você pode experimentar se quiser, pois todos os nossos clientes são de código aberto: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py
Adicionamos o novo recurso. Basta baixar o arquivo GrabzItClient.py e substituir sua cópia aqui: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py
Você pode então definir a URL do proxy do seu servidor proxy usando o novo método SetLocalProxy, por exemplo:
grabzIt.SetLocalProxy("http://123.123.123.123:21231")
Por favor, conte-nos como foi e faremos um novo lançamento em breve!
Obrigado pela resposta.
Eu troquei o GrabzItClient.py e mudei minha fonte:
grabzIt = GrabzItClient.GrabzItClient (CHAVE DE APLICAÇÃO, SEGREDO DE APLICAÇÃO)
grabzIt.SetLocalProxy("http://xxx@jp.xxxxx.com:yyyyyyy@zzz.proxy.zzz.zzzzzzz.com:8080")
pegue isso.HTMLToDOCX(" Olá Mundo! ")
pegue isso.SaveTo("documentos/resultado.docx")
usuário:xxx@jp.xxxx.com
senha:aaaaaaa
Servidor proxy:zzz.proxy.zzz.zzzzzzz.com
porta:8080
mensagem de erro:
Traceback (última chamada mais recente):
Arquivo "GrabzIt_test.py", linha 54, em
pegue isso.SaveTo("resultado.docx")
Arquivo "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", linha 487, em SaveTo
id = eu mesmo.Save()
Arquivo "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", linha 435, em Save
obj = self._take(sig, callBackURL)
Arquivo "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", linha 463, em _take
retornar self.HTTPPost(self.request.url, self.request.options._getParameters(self.applicationKey, sig, callBackURL, 'html', quote(self.request.data)))
Arquivo "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", linha 1307, em HTTPPost
headers['Proxy-Authorization'] = 'Básico ' + base64.b64encode(auth)
Arquivo "C:\Program Files\Python36\lib\base64.py", linha 58, em b64encode
codificado = binascii.b2a_base64(s, nova linha=Falso)
TypeError: é necessário um objeto semelhante a bytes, não 'str'
mesma mensagem de erro até eu mudei DefinirProxyLocal de "http://xxx@jp.xxxxx.com:yyyyyyy@zzz.proxy.zzz.zzzzzzz.com:8080" para "http://xxx%40jp.xxxxx.com:yyyyyyy@zzz.proxy.zzz.zzzzzzz.com:8080"
desculpe, pode ser que eu tenha definido o proxy errado.
Alterei o proxy para "http://the_other_proxy_server:port" e a mensagem de erro tornou-se:
Traceback (última chamada mais recente):
Arquivo "GrabzIt_test.py", linha 54, em
pegue isso.SaveTo("resultado.docx")
Arquivo "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", linha 487, em SaveTo
id = eu mesmo.Save()
Arquivo "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", linha 435, em Save
obj = self._take(sig, callBackURL)
Arquivo "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", linha 463, em _take
retornar self.HTTPPost(self.request.url, self.request.options._getParameters(self.applicationKey, sig, callBackURL, 'html', quote(self.request.data)))
Arquivo "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", linha 1327, em HTTPPost
h.endheaders()
Arquivo "C:\Arquivos de Programas\Python36\lib\http\client.py", linha 1234, em cabeçalhos finais
self._send_output(message_body, encode_chunked=encode_chunked)
Arquivo "C:\Program Files\Python36\lib\http\client.py", linha 1026, em _send_output
auto.enviar(msg)
Arquivo "C:\Program Files\Python36\lib\http\client.py", linha 964, em send
self.connect()
Arquivo "C:\Arquivos de Programas\Python36\lib\http\client.py", linha 940, em conexão
self._tunnel()
Arquivo "C:\Program Files\Python36\lib\http\client.py", linha 919, em _tunnel
mensagem.strip()))
OSError: Falha na conexão do túnel: autenticação de proxy 407 necessária
Você precisa especificar seu nome de usuário e senha assim: http://username:password@example.com:12335
Sim, especifiquei meu nome de usuário e senha (pergunta de quarta-feira, 22 de agosto de 2018, 09:34:43), como:
http://username:password@example.com:12335
nome de usuário é endereço de e-mail (xxx@jp.xxxxx.com), então mudei para xxx%40jp.xxxxx.com
mas é a mesma mensagem de erro: TypeError: é necessário um objeto semelhante a bytes, não 'str'
Desculpe, perdi sua resposta anterior. Acho que este é um problema do Python 3 e liberei uma correção que deve resolver o erro. Você pode atualizar GrabzItClient.py novamente em: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py
Substituí o arquivo python e encontrei uma nova mensagem de erro:
Traceback (última chamada mais recente):
Arquivo "GrabzIt_test.py", linha 54, em
pegue isso.SaveTo("resultado.docx")
Arquivo "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", linha 244, em SaveTo
id = eu mesmo.Save()
Arquivo "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", linha 218, em Save
obj = self._take(sig, callBackURL)
Arquivo "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", linha 232, em _take
retornar self.HTTPPost(self.request.url, self.request.options._getParameters(self.applicationKey, sig, callBackURL, 'html', quote(self.request.data)))
Arquivo "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", linha 661, em HTTPPost
headers['Proxy-Authorization'] = 'Básico ' + encodedAuth
TypeError: deve ser str, não bytes
Ok, nós decodificamos into ascii. Não estamos usando Python 3, e é por isso que nos surpreendeu. Atualize seu código aqui: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py
Como se trata de código aberto, sinta-se à vontade para depurar e enviar quaisquer melhorias que desejar para o Github. Como não temos acesso à sua configuração.
Muito obrigado pela sua ajuda.
OSError: Falha na conexão do túnel: autenticação de proxy 407 necessária
Vou tentar depurar.
Achamos que sabemos qual é o problema, mas será necessário reescrever parte do código. Portanto, entraremos em contato com você quando terminar. Esperançosamente em 24 horas.
Acredito que resolvemos o problema! Você pode obter a versão mais recente aqui: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py
Obrigado pela resposta.
Nova mensagem de erro:
Traceback (última chamada mais recente):
Arquivo "GrabzIt_test.py", linha 54, em
pegue isso.SaveTo("resultado.docx")
Arquivo "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", linha 243, em SaveTo
id = eu mesmo.Save()
Arquivo "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", linha 217, em Save
obj = self._take(sig, callBackURL)
Arquivo "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", linha 231, em _take
retornar self.HTTPPost(self.request.url, self.request.options._getParameters(self.applicationKey, sig, callBackURL, 'html', quote(self.request.data)))
Arquivo "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", linha 629, em HTTPPost
h = self._getConnection()
Arquivo "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", linha 679, em _getConnection
h.putheader('autorização proxy', 'Básico' + encodedAuth)
Arquivo "C:\Program Files\Python36\lib\http\client.py", linha 1201, no putheader
aumentar CannotSendHeader()
http.client.CannotSendHeader
Fizemos algumas pequenas melhorias em: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py
E testei em Python 2.7, 3.4 e 3.6 e funciona em todos os ambientes, com e sem proxies e com proxies autorizados.
Se ainda não estiver funcionando para você, você precisará depurar o código.
Obrigado pela resposta.
Vou depurar minha fonte.
A propósito, você testou o nome de usuário que é Email como xxx@yyy.com?