Herramientas para capturar y convertir la web
Comunidad en línea de GrabzIt

Lanzar error cuando ejecuto demo por python

error:

Rastreo (llamadas recientes más última):

Archivo "GrabzItClient.py", línea 6, en <module>

grabzIt.SaveTo("documentos / resultado.docx")

Archivo "C: \ Archivos de programa \ Python36 \ lib \ site-packages \ GrabzIt \ GrabzItClient.py", línea 235, en SaveTo

id = selfSave()

Archivo "C: \ Archivos de programa \ Python36 \ lib \ site-packages \ GrabzIt \ GrabzItClient.py", línea 209, en Save

obj = self._take (sig, callBackURL)

Archivo "C: \ Archivos de programa \ Python36 \ lib \ site-packages \ GrabzIt \ GrabzItClient.py", línea 223, en _take

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

Archivo "C: \ Archivos de programa \ Python36 \ lib \ site-packages \ GrabzIt \ GrabzItClient.py", línea 629, en HTTPPost

h.endheaders ()

Archivo "C: \ Archivos de programa \ Python36 \ lib \ http \ client.py", línea 1234, en encabezados

self._send_output (message_body, encode_chunked = encode_chunked)

Archivo "C: \ Archivos de programa \ Python36 \ lib \ http \ client.py", línea 1026, en _send_output

self.send (msg)

Archivo "C: \ Archivos de programa \ Python36 \ lib \ http \ client.py", línea 964, en envío

self.connect ()

Archivo "C: \ Archivos de programa \ Python36 \ lib \ http \ client.py", línea 936, en connect

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

Archivo "C: \ Archivos de programa \ Python36 \ lib \ socket.py", línea 704, en create_connection

para res en getaddrinfo (host, puerto, 0, SOCK_STREAM):

Archivo "C: \ Archivos de programa \ Python36 \ lib \ socket.py", línea 743, en getaddrinfo

para res en _socket.getaddrinfo (host, puerto, familia, tipo, proto, flags):

socket.gaierror: [Errno 11001] getaddrinfo falló

fuente : (instalé GrabzIt y obtuve CLAVE DE APLICACIÓN y SECRETO DE APLICACIÓN)

de GrabzIt import GrabzItClient

grabzIt = GrabzItClient.GrabzItClient (CLAVE DE APLICACIÓN, SECRETO DE APLICACIÓN)

grabzIt.HTMLToDOCX("<html> <body> <h1> ¡Hola Mundo! </h1> </body> </html>")

grabzIt.SaveTo("documentos / resultado.docx")

¿podrías decirme qué debo hacer?

Preguntado por anónimo el martes, 21 agosto, 2018 06: 54: 17 AM

Bienvenido a la comunidad!

Por lo general un socket.gaierror: [Errno 11001] getaddrinfo falló se produce cuando se llama al código desde detrás de un firewall o proxy. Asegúrese de que la aplicación tenga acceso al puerto 80.

Respondido por GrabzIt Support el martes, 21 agosto, 2018 07: 01: 51 AM

Gracias por la respuesta.

Sí, es el problema del proxy. Se ejecuta bien cuando cambio la otra PC que no tiene proxy.

¿Cómo puede funcionar con proxy?

Respondido por anónimo el martes, 21 agosto, 2018 09: 30: 49 AM

Esta será una nueva característica. Estamos buscando si podemos alterar el cliente Python para habilitar el uso de servidores proxy.

Si es posible, nos pondremos en contacto con usted para solucionarlo. Puede probarlo si lo desea, ya que todos nuestros clientes son de código abierto: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

Respondido por GrabzIt Support el martes, 21 agosto, 2018 12: 20: 04 PM

Hemos agregado la nueva característica. Simplemente descargue el archivo GrabzItClient.py y reemplace su copia desde aquí: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

A continuación, puede configurar la URL del proxy de su servidor proxy con el nuevo método SetLocalProxy, por ejemplo:

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

¡Déjenos ahora cómo va y haremos un nuevo lanzamiento pronto!

Respondido por GrabzIt Support el martes, 21 agosto, 2018 05: 38: 30 PM

Gracias por la respuesta.

Reemplacé GrabzItClient.py y cambió mi fuente:

grabzIt = GrabzItClient.GrabzItClient (CLAVE DE APLICACIÓN, SECRETO DE APLICACIÓN)

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

grabzIt.HTMLToDOCX("<html> <body> <h1> ¡Hola Mundo! </h1> </body> </html>")

grabzIt.SaveTo("documentos / resultado.docx")

usuario:xxx@jp.xxxxx.com

contraseña:aaaaaaa

servidor proxy:zzz.proxy.zzz.zzzzzzz.com

Puerto:8080

mensaje de error:

Rastreo (llamadas recientes más última):
Archivo "GrabzIt_test.py", línea 54, en <module>
grabzIt.SaveTo("resultado.docx")
Archivo "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", línea 487, en SaveTo
id = selfSave()
Archivo "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", línea 435, en Save
obj = self._take (sig, callBackURL)
Archivo "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", línea 463, en _take
return self.HTTPPost (self.request.url, self.request.options._getParameters (self.applicationKey, sig, callBackURL, 'html', quote (self.request.data)))
Archivo "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", línea 1307, en HTTPPost
encabezados ['Proxy-Authorization'] = 'Básico' + base64.b64encode (auth)
Archivo "C: \ Archivos de programa \ Python36 \ lib \ base64.py", línea 58, en b64encode
codificado = binascii.b2a_base64 (s, nueva línea = Falso)
TypeError: se requiere un objeto similar a bytes, no 'str'

mismo mensaje de error incluso cambié SetLocalProxy desde "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"

Respondido por anónimo el miércoles, 22 agosto, 2018 12: 34: 43 AM

lo siento, puedo configurar el proxy incorrecto.

Cambié el proxy a "http: // the_other_proxy_server: port" y el mensaje de error se convirtió en:

Rastreo (llamadas recientes más última):
Archivo "GrabzIt_test.py", línea 54, en <module>
grabzIt.SaveTo("resultado.docx")
Archivo "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", línea 487, en SaveTo
id = selfSave()
Archivo "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", línea 435, en Save
obj = self._take (sig, callBackURL)
Archivo "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", línea 463, en _take
return self.HTTPPost (self.request.url, self.request.options._getParameters (self.applicationKey, sig, callBackURL, 'html', quote (self.request.data)))
Archivo "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", línea 1327, en HTTPPost
h.endheaders ()
Archivo "C: \ Archivos de programa \ Python36 \ lib \ http \ client.py", línea 1234, en encabezados
self._send_output (message_body, encode_chunked = encode_chunked)
Archivo "C: \ Archivos de programa \ Python36 \ lib \ http \ client.py", línea 1026, en _send_output
self.send (msg)
Archivo "C: \ Archivos de programa \ Python36 \ lib \ http \ client.py", línea 964, en envío
self.connect ()
Archivo "C: \ Archivos de programa \ Python36 \ lib \ http \ client.py", línea 940, en connect
self._tunnel ()
Archivo "C: \ Archivos de programa \ Python36 \ lib \ http \ client.py", línea 919, en _tunnel
message.strip ()))
OSError: error en la conexión del túnel: se requiere autenticación 407 Proxy

Respondido por anónimo el miércoles, 22 agosto, 2018 12: 40: 52 AM

Debe especificar su nombre de usuario y contraseña de la siguiente manera: http://username:password@example.com:12335

Respondido por GrabzIt Support el miércoles, 22 agosto, 2018 05: 38: 10 AM

Sí, especifiqué mi nombre de usuario y contraseña (pregunta el miércoles, 22 agosto, 2018 09: 34: 43 AM) como:

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

el nombre de usuario es la dirección de correo electrónico (xxx@jp.xxxxx.com), así que cambié a xxx% 40jp.xxxxx.com

pero es el mismo mensaje de error: TypeError: se requiere un objeto de tipo bytes, no 'str'

Respondido por anónimo el miércoles, 22 agosto, 2018 05: 50: 49 AM

Lo siento, perdí tu respuesta anterior. Creo que este es un problema de Python 3 y hemos lanzado una solución que debería resolver el error. Puede actualizar GrabzItClient.py nuevamente desde: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

Respondido por GrabzIt Support el miércoles, 22 agosto, 2018 06: 40: 47 AM

Reemplacé el archivo de Python y encontré un nuevo mensaje de error:

Rastreo (llamadas recientes más última):

Archivo "GrabzIt_test.py", línea 54, en <module>

grabzIt.SaveTo("resultado.docx")

Archivo "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", línea 244, en SaveTo

id = selfSave()

Archivo "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", línea 218, en Save

obj = self._take (sig, callBackURL)

Archivo "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", línea 232, en _take

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

Archivo "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", línea 661, en HTTPPost

encabezados ['Proxy-Authorization'] = 'Básico' + encodedAuth

TypeError: debe ser str, no bytes

Respondido por anónimo el miércoles, 22 agosto, 2018 08: 39: 24 AM

Ok, lo hemos decodificado into ascii. No estamos usando Python 3, por eso nos sorprendió. Actualice su código desde aquí: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

Como esto es de código abierto, siéntase libre de depurar y confirmar cualquier mejora que desee en Github. Como no tenemos acceso a su configuración.

Respondido por GrabzIt Support el miércoles, 22 agosto, 2018 09: 22: 01 AM

Muchas gracias por su ayuda.

OSError: error en la conexión del túnel: se requiere autenticación 407 Proxy

Intentaré depurar.

Respondido por anónimo el miércoles, 22 agosto, 2018 10: 23: 31 AM

Creemos que sabemos cuál es el problema, sin embargo, será necesario volver a escribir parte del código. Entonces nos pondremos en contacto con usted cuando haya terminado. Con suerte en 24 horas.

Respondido por GrabzIt Support el miércoles, 22 agosto, 2018 12: 15: 22 PM

¡Creo que hemos solucionado el problema! Puede obtener la última versión aquí: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

Respondido por GrabzIt Support el miércoles, 22 agosto, 2018 05: 30: 43 PM

Gracias por la respuesta.

Nuevo mensaje de error:

Rastreo (llamadas recientes más última):
Archivo "GrabzIt_test.py", línea 54, en <module>
grabzIt.SaveTo("resultado.docx")
Archivo "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", línea 243, en SaveTo
id = selfSave()
Archivo "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", línea 217, en Save
obj = self._take (sig, callBackURL)
Archivo "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", línea 231, en _take
return self.HTTPPost (self.request.url, self.request.options._getParameters (self.applicationKey, sig, callBackURL, 'html', quote (self.request.data)))
Archivo "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", línea 629, en HTTPPost
h = self._getConnection ()
Archivo "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", línea 679, en _getConnection
h.putheader ('autorización de proxy', 'Básico' + encodedAuth)
Archivo "C: \ Archivos de programa \ Python36 \ lib \ http \ client.py", línea 1201, en putheader
raise CannotSendHeader ()
http.client.CannotSendHeader

Respondido por anónimo el miércoles, 22 agosto, 2018 11: 52: 17 PM

Hemos realizado algunas mejoras menores en: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

Y lo he probado en Python 2.7, 3.4 y 3.6 y funciona en todos los entornos, con y sin proxies y con proxies autorizados.

Si aún no funciona para usted, deberá depurar el código.

Respondido por GrabzIt Support el jueves, 23 agosto, 2018 11: 41: 44 AM

Gracias por tu respuesta.

Voy a depurar mi fuente.

Por cierto, ¿probaste el nombre de usuario que es Correo electrónico como xxx@yyy.com?

Respondido por anónimo el jueves, 23 agosto, 2018 11: 56: 46 AM

No, no era necesario que estuviera codificado y decodificado correctamente, así que tal vez ese sea el problema.

Respondido por GrabzIt Support el jueves, 23 agosto, 2018 11: 59: 36 AM