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 <module>

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("<html> <body> <h1> Bonjour tout le monde! </ h1> </ body> </ html>")

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

pourriez-vous me dire que dois-je faire?

Demandé par anonymous mardi, 21 Août, 2018 06: 54: 17 AM

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épondu par le support GrabzIt le mardi, 21 août, 2018 07: 01: 51 AM

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 anonyme le mardi, 21 Août, 2018 09: 30: 49 AM

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

Si cela est possible, nous vous contacterons avec une solution. 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épondu par le support GrabzIt le mardi, 21 août, 2018 12: 20: 04 PM

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épondu par le support GrabzIt le mardi, 21 août, 2018 05: 38: 30 PM

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("<html> <body> <h1> Bonjour tout le monde! </ h1> </ body> </ html>")

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 <module>
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 anonyme le mercredi, 22 Août, 2018 12: 34: 43 AM

désolé, peut-être que je mets 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 <module>
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 anonyme le mercredi, 22 Août, 2018 12: 40: 52 AM

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

Répondu par le support GrabzIt mercredi, 22 août, 2018 05: 38: 10 AM

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 anonyme le mercredi, 22 Août, 2018 05: 50: 49 AM

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

Répondu par le support GrabzIt mercredi, 22 août, 2018 06: 40: 47 AM

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 <module>

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 anonyme le mercredi, 22 Août, 2018 08: 39: 24 AM

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épondu par le support GrabzIt mercredi, 22 août, 2018 09: 22: 01 AM

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 anonyme le mercredi, 22 Août, 2018 10: 23: 31 AM

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épondu par le support GrabzIt mercredi, 22 Août, 2018 12: 15: 22 PM

Je crois 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épondu par le support GrabzIt mercredi, 22 Août, 2018 05: 30: 43 PM

Merci pour votre réponse.

Nouveau message d'erreur:

Traceback (appel le plus récent dernier):
Fichier "GrabzIt_test.py", ligne 54, dans <module>
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 anonyme le mercredi, 22 Août, 2018 11: 52: 17 PM

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épondu par le support GrabzIt le jeudi, 23 Août, 2018 11: 41: 44 AM

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 anonyme le jeudi, 23 Août, 2018 11: 56: 46 AM

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

Répondu par le support GrabzIt le jeudi, 23 Août, 2018 11: 59: 36 AM