Stel vragen met betrekking tot de Web Scraper Tool van GrabzIt. Zoals hoe de webschraper en API te gebruiken om gegevens uit webpagina's, afbeeldingen of PDF-documenten te extraheren.
fout:
Hertraceren (meest recente oproep als laatste)
Bestand "GrabzItClient.py", regel 6, in
pak het.SaveTo("documenten/resultaat.docx")
Bestand "C:\Program Files\Python36\lib\site-packages\GrabzIt\GrabzItClient.py", regel 235, in SaveTo
ID = zelf.Save()
Bestand "C:\Program Files\Python36\lib\site-packages\GrabzIt\GrabzItClient.py", regel 209, in Save
obj = zelf._take(sig, callBackURL)
Bestand "C:\Program Files\Python36\lib\site-packages\GrabzIt\GrabzItClient.py", regel 223, in _take
return self.HTTPPost(self.request.url, self.request.options._getParameters(self.applicationKey, sig, callBackURL, 'html', quote(self.request.data)))
Bestand "C:\Program Files\Python36\lib\site-packages\GrabzIt\GrabzItClient.py", regel 629, in HTTPPost
h.endheaders()
Bestand "C:\Program Files\Python36\lib\http\client.py", regel 1234, in eindheaders
self._send_output(message_body, encode_chunked=encode_chunked)
Bestand "C:\Program Files\Python36\lib\http\client.py", regel 1026, in _send_output
zelf.verzenden(msg)
Bestand "C:\Program Files\Python36\lib\http\client.py", regel 964, in verzending
zelf.connect()
Bestand "C:\Program Files\Python36\lib\http\client.py", regel 936, in connect
(self.host,self.port), self.timeout, self.source_address)
Bestand "C:\Program Files\Python36\lib\socket.py", regel 704, in create_connection
voor res in getaddrinfo(host, poort, 0, SOCK_STREAM):
Bestand "C:\Program Files\Python36\lib\socket.py", regel 743, in getaddrinfo
voor res in _socket.getaddrinfo (host, poort, familie, type, proto, vlaggen):
socket.gaierror: [Errno 11001] getaddrinfo mislukt
bron:(Ik heb GrabzIt geïnstalleerd en kreeg APPLICATIESLEUTEL en APPLICATIEGEHEIM)
van GrabzIt importeer GrabzItClient
grabzIt = GrabzItClient.GrabzItClient(TOEPASSINGSSLEUTEL, TOEPASSINGSGEHEIM)
pak het.HTMLToDOCX(" Hallo Wereld! ")
pak het.SaveTo("documenten/resultaat.docx")
kunt u mij vertellen wat ik moet doen?
Welkom bij de community!
Meestal een socket.gaierror: [Errno 11001] getaddrinfo mislukt wordt veroorzaakt wanneer de code wordt aangeroepen van achter een firewall of proxy. Zorg ervoor dat de applicatie toegang heeft tot poort 80.
Bedankt voor het antwoord.
Ja, het is een proxyprobleem. Het werkt prima als ik de andere pc verander die geen proxy heeft.
Hoe kan het werken met proxy?
Dit wordt een nieuwe functie. We kijken of we de Python-client kunnen wijzigen om het gebruik van proxyservers mogelijk te maken.
Als het mogelijk is, nemen we contact met u op met een oplossing. Je kunt het zelf proberen als je wilt, want al onze klanten zijn open source: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py
We hebben de nieuwe functie toegevoegd. Download gewoon het GrabzItClient.py-bestand en vervang uw exemplaar vanaf hier: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py
Vervolgens kunt u de proxy-URL van uw proxyserver instellen met behulp van de nieuwe SetLocalProxy-methode, bijvoorbeeld:
grabzIt.SetLocalProxy("http://123.123.123.123:21231")
Laat ons nu weten hoe het gaat en we zullen binnenkort een nieuwe release doen!
Bedankt voor het antwoord.
Ik verving de GrabzItClient.py en veranderde mijn bron:
grabzIt = GrabzItClient.GrabzItClient(TOEPASSINGSSLEUTEL, TOEPASSINGSGEHEIM)
grabzIt.SetLocalProxy("http://xxx@jp.xxxxx.com:yyyyyyy@zzz.proxy.zzz.zzzzzz.com:8080")
pak het.HTMLToDOCX(" Hallo Wereld! ")
pak het.SaveTo("documenten/resultaat.docx")
gebruiker:xxx@jp.xxxxx.com
wachtwoord:jjjjjjj
proxy server:zzz.proxy.zzz.zzzzzzz.com
haven:8080
foutmelding:
Hertraceren (meest recente oproep als laatste)
Bestand "GrabzIt_test.py", regel 54, in
pak het.SaveTo("resultaat.docx")
Bestand "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", regel 487, in SaveTo
ID = zelf.Save()
Bestand "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", regel 435, in Save
obj = zelf._take(sig, callBackURL)
Bestand "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", regel 463, in _take
return self.HTTPPost(self.request.url, self.request.options._getParameters(self.applicationKey, sig, callBackURL, 'html', quote(self.request.data)))
Bestand "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", regel 1307, in HTTPPost
headers['Proxy-Authorization'] = 'Basis' + base64.b64encode(auth)
Bestand "C:\Program Files\Python36\lib\base64.py", regel 58, in b64encode
gecodeerd = binascii.b2a_base64(s, newline=False)
TypeError: een bytesachtig object is vereist, niet 'str'
dezelfde foutmelding, zelfs ik veranderde SetLocalProxy van "http://xxx@jp.xxxxx.com:yyyyyyy@zzz.proxy.zzz.zzzzzzz.com:8080" naar "http://xxx%40jp.xxxxx.com:yyyyyyy@zzz.proxy.zzz.zzzzzzz.com:8080"
sorry, misschien heb ik de verkeerde proxy ingesteld.
Ik veranderde de proxy in "http://the_other_proxy_server:port" en de foutmelding werd:
Hertraceren (meest recente oproep als laatste)
Bestand "GrabzIt_test.py", regel 54, in
pak het.SaveTo("resultaat.docx")
Bestand "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", regel 487, in SaveTo
ID = zelf.Save()
Bestand "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", regel 435, in Save
obj = zelf._take(sig, callBackURL)
Bestand "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", regel 463, in _take
return self.HTTPPost(self.request.url, self.request.options._getParameters(self.applicationKey, sig, callBackURL, 'html', quote(self.request.data)))
Bestand "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", regel 1327, in HTTPPost
h.endheaders()
Bestand "C:\Program Files\Python36\lib\http\client.py", regel 1234, in eindheaders
self._send_output(message_body, encode_chunked=encode_chunked)
Bestand "C:\Program Files\Python36\lib\http\client.py", regel 1026, in _send_output
zelf.verzenden(msg)
Bestand "C:\Program Files\Python36\lib\http\client.py", regel 964, in verzending
zelf.connect()
Bestand "C:\Program Files\Python36\lib\http\client.py", regel 940, in connect
zelf._tunnel()
Bestand "C:\Program Files\Python36\lib\http\client.py", regel 919, in _tunnel
bericht.strip()))
OSError: Tunnelverbinding mislukt: 407 Proxyverificatie vereist
U moet uw gebruikersnaam en wachtwoord als volgt opgeven: http://username:password@example.com:12335
Ja, ik heb mijn gebruikersnaam en wachtwoord opgegeven (vraag op woensdag 22 augustus 2018 09:34:43 AM) zoals:
http://username:password@example.com:12335
gebruikersnaam is e-mailadres (xxx@jp.xxxxx.com), dus ik ben veranderd in xxx%40jp.xxxxx.com
maar het is dezelfde foutmelding:TypeError: een bytesachtig object is vereist, niet 'str'
Sorry, ik heb je eerdere reactie gemist. Ik denk dat dit een Python 3-probleem is en heb een oplossing uitgebracht die de fout zou moeten oplossen. Kunt u GrabzItClient.py opnieuw bijwerken vanaf: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py
Ik heb het Python-bestand vervangen en vind een nieuwe foutmelding:
Hertraceren (meest recente oproep als laatste)
Bestand "GrabzIt_test.py", regel 54, in
pak het.SaveTo("resultaat.docx")
Bestand "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", regel 244, in SaveTo
ID = zelf.Save()
Bestand "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", regel 218, in Save
obj = zelf._take(sig, callBackURL)
Bestand "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", regel 232, in _take
return self.HTTPPost(self.request.url, self.request.options._getParameters(self.applicationKey, sig, callBackURL, 'html', quote(self.request.data)))
Bestand "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", regel 661, in HTTPPost
headers['Proxy-Authorization'] = 'Basis' + encodedAuth
TypeError: moet str zijn, geen bytes
Oké, we hebben het gedecodeerd into ascii. We gebruiken Python 3 niet, daarom viel het ons op. Update uw code vanaf hier: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py
Omdat dit open source is, voel je vrij om fouten te debuggen en eventuele verbeteringen door te voeren naar Github. Omdat wij geen toegang hebben tot uw installatie.
Hartelijk bedankt voor je hulp.
OSError: Tunnelverbinding mislukt: 407 Proxyverificatie vereist
Ik zal proberen te debuggen.
We denken dat we weten wat het probleem is, maar hiervoor moet een deel van de code opnieuw worden geschreven. We nemen dus contact met u op als dit klaar is. Hopelijk binnen 24 uur.
Ik geloof dat we het probleem hebben opgelost! Je kunt de nieuwste versie hier downloaden: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py
Bedankt voor het antwoord.
Nieuwe foutmelding:
Hertraceren (meest recente oproep als laatste)
Bestand "GrabzIt_test.py", regel 54, in
pak het.SaveTo("resultaat.docx")
Bestand "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", regel 243, in SaveTo
ID = zelf.Save()
Bestand "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", regel 217, in Save
obj = zelf._take(sig, callBackURL)
Bestand "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", regel 231, in _take
return self.HTTPPost(self.request.url, self.request.options._getParameters(self.applicationKey, sig, callBackURL, 'html', quote(self.request.data)))
Bestand "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", regel 629, in HTTPPost
h = zelf._getConnection()
Bestand "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", regel 679, in _getConnection
h.putheader('proxy-autorisatie', 'Basic' + encodedAuth)
Bestand "C:\Program Files\Python36\lib\http\client.py", regel 1201, in putheader
verhogen CannotSendHeader()
http.client.CannotSendHeader
We hebben enkele kleine verbeteringen aangebracht aan: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py
En heb het getest in Python 2.7, 3.4 en 3.6 en het werkt in alle omgevingen, met en zonder proxy's en met geautoriseerde proxy's.
Als het nog steeds niet voor u werkt, moet u de code debuggen.
Bedankt voor je antwoord.
Ik zal mijn bron debuggen.
Heb je trouwens de gebruikersnaam getest, namelijk E-mail, zoals xxx@yyy.com?