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

Lanza un error cuando ejecuto la demostración con Python

Haga preguntas sobre cómo capturar o convertir páginas web o HTML into imágenes, documentos CSV, PDF o DOCX también sobre cómo convertir videos into GIF animados usando nuestra API.

error:

Rastreo (llamadas recientes más última):

  Archivo "GrabzItClient.py", línea 6, en

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

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

    identificación = yo.Save()

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

    obj = self._take(sig, callBackURL)

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

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

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

    h.endheaders()

  Archivo "C:\Program Files\Python36\lib\http\client.py", línea 1234, en encabezados finales

    self._send_output(cuerpo_mensaje, codificar_chunked=codificar_chunked)

  Archivo "C:\Program Files\Python36\lib\http\client.py", línea 1026, en _send_output

    autoenvío (mensaje)

  Archivo "C:\Program Files\Python36\lib\http\client.py", línea 964, en envío

    auto.conectar()

  Archivo "C:\Program Files\Python36\lib\http\client.py", línea 936, en conexión

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

  Archivo "C:\Program Files\Python36\lib\socket.py", línea 704, en create_connection

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

  Archivo "C:\Program Files\Python36\lib\socket.py", línea 743, en getaddrinfo

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

socket.gaierror: [Errno 11001] getaddrinfo falló

 

fuente: (Instalé GrabzIt y obtuve la CLAVE DE APLICACIÓN y el SECRETO DE APLICACIÓN)

desde GrabzIt importar GrabzItClient

 

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

agarrarlo.HTMLToDOCX(" ¡Hola Mundo! ") 

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

 

¿podrías decirme qué debo hacer?

Preguntado por anónimo el 21 de agosto de 2018.

Bienvenido a la comunidad!

Por lo general un socket.gaierror: [Errno 11001] getaddrinfo falló Se produce cuando el código se llama 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 21 de agosto de 2018

Gracias por la respuesta.

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

¿Cómo puede funcionar con proxy?

Respondido por anónimo el 21 de agosto de 2018.

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

Si es posible, nos comunicaremos con usted con una solución. Puede intentarlo usted mismo 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 21 de agosto de 2018

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

Luego puede configurar la URL del proxy de su servidor proxy utilizando el nuevo método SetLocalProxy, por ejemplo:

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

¡Cuéntanos cómo te va y pronto haremos un nuevo lanzamiento!

Respondido por GrabzIt Support el 21 de agosto de 2018

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:yyyyyyy@zzz.proxy.zzz.zzzzzzz.com:8080")

agarrarlo.HTMLToDOCX(" ¡Hola Mundo! ") 

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

 

usuario:xxx@jp.xxxxx.com

contraseña:yyyyyyy

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
    agarrarlo.SaveTo("resultado.docx")
  Archivo "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", línea 487, en SaveTo
    identificación = yo.Save()
  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
    devolver 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['Autorización de proxy'] = 'Básico' + base64.b64encode(auth)
  Archivo "C:\Program Files\Python36\lib\base64.py", línea 58, en b64encode
    codificado = binascii.b2a_base64(s, nueva línea=False)
TypeError: se requiere un objeto similar a bytes, no 'str'

 

Mismo mensaje de error incluso yo cambié. Establecer proxy local 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 22 de agosto de 2018.

Lo siento, es posible que haya configurado el proxy incorrecto.

Cambié el proxy a "http://the_other_proxy_server:port" y el mensaje de error fue:

Rastreo (llamadas recientes más última):
  Archivo "GrabzIt_test.py", línea 54, en
    agarrarlo.SaveTo("resultado.docx")
  Archivo "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", línea 487, en SaveTo
    identificación = yo.Save()
  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
    devolver 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:\Program Files\Python36\lib\http\client.py", línea 1234, en encabezados finales
    self._send_output(cuerpo_mensaje, codificar_chunked=codificar_chunked)
  Archivo "C:\Program Files\Python36\lib\http\client.py", línea 1026, en _send_output
    autoenvío (mensaje)
  Archivo "C:\Program Files\Python36\lib\http\client.py", línea 964, en envío
    auto.conectar()
  Archivo "C:\Program Files\Python36\lib\http\client.py", línea 940, en conexión
    self._tunnel()
  Archivo "C:\Program Files\Python36\lib\http\client.py", línea 919, en _tunnel
    mensaje.strip()))
OSError: Error en la conexión del túnel: se requiere autenticación de proxy 407

Respondido por anónimo el 22 de agosto de 2018.

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

Respondido por GrabzIt Support el 22 de agosto de 2018

Sí, especifiqué mi nombre de usuario y contraseña (pregunta del miércoles 22 de agosto de 2018 a las 09:34:43) 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 similar a bytes, no 'str'

Respondido por anónimo el 22 de agosto de 2018.

Lo siento, me perdí tu respuesta anterior. Creo que se trata de un problema de Python 3 y he publicado 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 22 de agosto de 2018

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

Rastreo (llamadas recientes más última):

  Archivo "GrabzIt_test.py", línea 54, en

    agarrarlo.SaveTo("resultado.docx")

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

    identificación = yo.Save()

  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

    devolver 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['Autorización de proxy'] = 'Básico ' + autenticación codificada

TypeError: debe ser cadena, no bytes

Respondido por anónimo el 22 de agosto de 2018.

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 se trata de código abierto, siéntete libre de depurar y enviar cualquier mejora que desees a Github. Como no tenemos acceso a su configuración.

Respondido por GrabzIt Support el 22 de agosto de 2018

Muchas gracias por su ayuda.

OSError: Error en la conexión del túnel: se requiere autenticación de proxy 407

Intentaré depurar. 

Respondido por anónimo el 22 de agosto de 2018.

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

Respondido por GrabzIt Support el 22 de agosto de 2018

¡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 22 de agosto de 2018

Gracias por la respuesta.

Nuevo mensaje de error:

Rastreo (llamadas recientes más última):
  Archivo "GrabzIt_test.py", línea 54, en
    agarrarlo.SaveTo("resultado.docx")
  Archivo "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", línea 243, en SaveTo
    identificación = yo.Save()
  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
    devolver 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-proxy', 'Básico' + autenticación codificada)
  Archivo "C:\Program Files\Python36\lib\http\client.py", línea 1201, en putheader
    aumentar CannotSendHeader()
http.client.CannotSendHeader

 

Respondido por anónimo el 22 de agosto de 2018.

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

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 le funciona, deberá depurar el código.

Respondido por GrabzIt Support el 23 de agosto de 2018

Gracias por tu respuesta.

Depuraré mi fuente.

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

Respondido por anónimo el 23 de agosto de 2018.

No, no necesitaba codificarlo y decodificarlo adecuadamente, así que tal vez ese sea el problema.

Respondido por GrabzIt Support el 23 de agosto de 2018