Outils pour capturer et convertir le Web
Communauté en ligne de GrabzIt

Lance une erreur lorsque je lance la démo par python

erreur:

Traceback (appel le plus récent dernier):

  Fichier "GrabzItClient.py", ligne 6, dans

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

  Fichier "C: \ Program Files \ Python36 \ lib \ site-packages \ GrabzIt \ GrabzItClient.py", ligne 235, dans SaveTo

    id = self.Save()

  Fichier "C: \ Program Files \ Python36 \ lib \ site-packages \ GrabzIt \ GrabzItClient.py", ligne 209, dans Save

    obj = self._take (sig, callBackURL)

  Fichier "C: \ Program Files \ Python36 \ lib \ site-packages \ GrabzIt \ GrabzItClient.py", ligne 223, dans _take

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

  Fichier "C: \ Program Files \ Python36 \ lib \ site-packages \ GrabzIt \ GrabzItClient.py", ligne 629, dans HTTPPost

    h.endheaders ()

  Fichier "C: \ Program Files \ Python36 \ lib \ http \ client.py", ligne 1234, dans les en-têtes

    self._send_output (message_body, encode_chunked = encode_chunked)

  Fichier "C: \ Program Files \ Python36 \ lib \ http \ client.py", ligne 1026, dans _send_output

    self.send (msg)

  Fichier "C: \ Program Files \ Python36 \ lib \ http \ client.py", ligne 964, à envoyer

    self.connect ()

  Fichier "C: \ Program Files \ Python36 \ lib \ http \ client.py", ligne 936, en cours de connexion

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

  Fichier "C: \ Program Files \ Python36 \ lib \ socket.py", ligne 704, dans create_connection

    pour res dans getaddrinfo (hôte, port, 0, SOCK_STREAM):

  Fichier "C: \ Program Files \ Python36 \ lib \ socket.py", ligne 743, dans getaddrinfo

    pour res dans _socket.getaddrinfo (hôte, port, famille, type, proto, drapeaux):

socket.gaierror: [Errno 11001] getaddrinfo a échoué

 

source : (J'ai installé GrabzIt et obtenu APPLY KEY et APPLICATION SECRET)

depuis GrabzIt importer GrabzItClient

 

grabzIt = GrabzItClient.GrabzItClient (clé d'application, secret d'application)

grabzIt.HTMLToDOCX(" Bonjour le monde! ") 

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

 

pourriez-vous me dire que dois-je faire?

Interrogé par un anonyme le 21 août 2018

Bienvenue dans la communauté!

Généralement un socket.gaierror: [Errno 11001] getaddrinfo a échoué est provoqué lorsque le code est appelé de derrière un pare-feu ou un proxy. Veuillez vous assurer que l'application a accès au port 80.

Réponse du support GrabzIt le 21 août 2018

Merci pour la réponse.

Oui, c’est le problème du proxy.Il fonctionne correctement lorsque je change d’autre ordinateur sans proxy.

Comment cela peut-il fonctionner avec un proxy?

Répondu par un anonyme le 21 août 2018

Ce sera une nouvelle fonctionnalité. Nous cherchons si nous pouvons modifier le client Python pour l'activer à l'aide de serveurs proxy.

Si c'est possible, nous vous répondrons avec un correctif. Vous pouvez essayer vous-même si vous le souhaitez car tous nos clients sont open source: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

Réponse du support GrabzIt le 21 août 2018

Nous avons ajouté la nouvelle fonctionnalité. Il suffit de télécharger le fichier GrabzItClient.py et de remplacer votre copie à partir d’ici: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

Vous pouvez ensuite définir l'URL du proxy de votre serveur proxy en utilisant la nouvelle méthode SetLocalProxy, par exemple:

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

Laissez-nous maintenant comment ça se passe et nous ferons une nouvelle version bientôt!

Réponse du support GrabzIt le 21 août 2018

Merci pour la réponse.

j'ai remplacé the GrabzItClient.py et a changé de source:

 

 

grabzIt = GrabzItClient.GrabzItClient (clé d'application, secret d'application)

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

grabzIt.HTMLToDOCX(" Bonjour le monde! ") 

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

 

utilisateur:xxx@jp.xxxxx.com

mot de passe:yyyyyyy

Serveur proxy:zzz.proxy.zzz.zzzzzzz.com

Port:8080

 

Message d'erreur:

Traceback (appel le plus récent dernier):
  Fichier "GrabzIt_test.py", ligne 54, dans
    grabzIt.SaveTo("result.docx")
  Fichier "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", ligne 487, dans SaveTo
    id = self.Save()
  Fichier "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", ligne 435, dans Save
    obj = self._take (sig, callBackURL)
  Fichier "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", ligne 463, dans _take
    retourne self.HTTPPost (self.request.url, self.request.options._getParameters (self.applicationKey, sig, callBackURL, 'html', quote (self.request.data))
  Fichier "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", ligne 1307, dans HTTPPost
    headers ['Proxy-Authorization'] = 'Base' + base64.b64encode (auth)
  Fichier "C: \ Program Files \ Python36 \ lib \ base64.py", ligne 58, en b64encode
    encoded = binascii.b2a_base64 (s, nouvelle ligne = False)
TypeError: un objet de type octet est requis, pas 'str'

 

même message d'erreur même j'ai changé SetLocalProxy de "http://xxx@jp.xxxxx.com:yyyyyyy@zzz.proxy.zzz.zzzzzzz.com:8080"À "http://xxx%40jp.xxxxx.com:yyyyyyy@zzz.proxy.zzz.zzzzzzz.com:8080"

 

Répondu par un anonyme le 22 août 2018

désolé, j'ai peut-être défini le mauvais proxy.

J'ai changé le proxy en "http: // the_other_proxy_server: port" et le message d'erreur est devenu:

Traceback (appel le plus récent dernier):
  Fichier "GrabzIt_test.py", ligne 54, dans
    grabzIt.SaveTo("result.docx")
  Fichier "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", ligne 487, dans SaveTo
    id = self.Save()
  Fichier "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", ligne 435, dans Save
    obj = self._take (sig, callBackURL)
  Fichier "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", ligne 463, dans _take
    retourne self.HTTPPost (self.request.url, self.request.options._getParameters (self.applicationKey, sig, callBackURL, 'html', quote (self.request.data))
  Fichier "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", ligne 1327, dans HTTPPost
    h.endheaders ()
  Fichier "C: \ Program Files \ Python36 \ lib \ http \ client.py", ligne 1234, dans les en-têtes
    self._send_output (message_body, encode_chunked = encode_chunked)
  Fichier "C: \ Program Files \ Python36 \ lib \ http \ client.py", ligne 1026, dans _send_output
    self.send (msg)
  Fichier "C: \ Program Files \ Python36 \ lib \ http \ client.py", ligne 964, à envoyer
    self.connect ()
  Fichier "C: \ Program Files \ Python36 \ lib \ http \ client.py", ligne 940, en cours de connexion
    self._tunnel ()
  Fichier "C: \ Program Files \ Python36 \ lib \ http \ client.py", ligne 919, dans _tunnel
    message.strip ()))
OSError: échec de la connexion au tunnel: authentification du proxy 407 requise

Répondu par un anonyme le 22 août 2018

Vous devez spécifier votre nom d'utilisateur et votre mot de passe comme suit: http://username:password@example.com:12335

Réponse de l'assistance GrabzIt le 22 août 2018

Oui, j'ai spécifié mon nom d'utilisateur et mon mot de passe (question du mercredi, 22 août, 2018: 09: 34 AM) comme:

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

nom d'utilisateur est l'adresse e-mail (xxx@jp.xxxxx.com), alors j'ai changé pour xxx% 40jp.xxxxx.com

mais c'est le même message d'erreur: TypeError: un objet de type octet est requis, pas "str"

Répondu par un anonyme le 22 août 2018

Désolé, j'ai manqué votre réponse précédente. Je pense que c'est un problème Python 3 et j'ai publié un correctif qui devrait résoudre l'erreur. Veuillez mettre à jour GrabzItClient.py à nouveau depuis: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

Réponse de l'assistance GrabzIt le 22 août 2018

J'ai remplacé le fichier python et trouve un nouveau message d'erreur:

Traceback (appel le plus récent dernier):

  Fichier "GrabzIt_test.py", ligne 54, dans

    grabzIt.SaveTo("result.docx")

  Fichier "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", ligne 244, dans SaveTo

    id = self.Save()

  Fichier "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", ligne 218, dans Save

    obj = self._take (sig, callBackURL)

  Fichier "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", ligne 232, dans _take

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

  Fichier "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", ligne 661, dans HTTPPost

    headers ['Proxy-Authorization'] = 'Base' + encodedAuth

TypeError: doit être str, pas octets

Répondu par un anonyme le 22 août 2018

Ok, nous l'avons décodé into ascii. Nous n'utilisons pas Python 3, c'est pourquoi il nous a surpris. Veuillez mettre à jour votre code à partir d'ici: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

Comme il s'agit d'une source ouverte, n'hésitez pas à déboguer et à valider toutes les améliorations que vous souhaitez dans Github. Comme nous n'avons pas accès à votre configuration.

Réponse de l'assistance GrabzIt le 22 août 2018

Merci beaucoup pour votre aide.

OSError: échec de la connexion au tunnel: authentification du proxy 407 requise

Je vais essayer de déboguer. 

Répondu par un anonyme le 22 août 2018

Nous pensons connaître le problème, mais il faudra toutefois réécrire une partie du code. Nous vous contacterons donc lorsque vous aurez terminé. Espérons dans les heures 24.

Réponse de l'assistance GrabzIt le 22 août 2018

Je pense que nous avons résolu le problème! Vous pouvez obtenir la dernière version ici: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

Réponse de l'assistance GrabzIt le 22 août 2018

Merci pour votre réponse.

Nouveau message d'erreur:

Traceback (appel le plus récent dernier):
  Fichier "GrabzIt_test.py", ligne 54, dans
    grabzIt.SaveTo("result.docx")
  Fichier "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", ligne 243, dans SaveTo
    id = self.Save()
  Fichier "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", ligne 217, dans Save
    obj = self._take (sig, callBackURL)
  Fichier "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", ligne 231, dans _take
    retourne self.HTTPPost (self.request.url, self.request.options._getParameters (self.applicationKey, sig, callBackURL, 'html', quote (self.request.data))
  Fichier "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", ligne 629, dans HTTPPost
    h = self._getConnection ()
  Fichier "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", ligne 679, dans _getConnection
    h.putheader ('autorisation de proxy', 'Basic' + encodedAuth)
  Fichier "C: \ Program Files \ Python36 \ lib \ http \ client.py", ligne 1201, dans l'en-tête
    soulève CannotSendHeader ()
http.client.CannotSendHeader

 

Répondu par un anonyme le 22 août 2018

Nous avons apporté quelques améliorations mineures à: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

Et l'avons testé en Python 2.7, 3.4 et 3.6 et il fonctionne dans tous les environnements, avec et sans proxy et avec des proxy autorisés.

Si cela ne fonctionne toujours pas pour vous, vous devrez déboguer le code.

Réponse du support GrabzIt le 23 août 2018

Merci de votre réponse.

Je vais déboguer ma source.

A propos, avez-vous testé le nom d'utilisateur qui est Email, comme xxx@yyy.com?

Répondu par un anonyme le 23 août 2018

Non, je n'aurais pas besoin qu'il soit correctement encodé et décodé, alors c'est peut-être le problème.

Réponse du support GrabzIt le 23 août 2018