Narzędzia do przechwytywania i konwertowania Internetu
Społeczność online GrabzIt

Zgłaszaj błąd, gdy uruchamiam demo przy użyciu Pythona

błąd:

Traceback (ostatnie połączenie ostatnio):

  Plik „GrabzItClient.py”, wiersz 6, w

    grabzIt.SaveTo(„dokumenty / wynik.docx”)

  Plik „C: \ Program Files \ Python36 \ lib \ site-packages \ GrabzIt \ GrabzItClient.py”, wiersz 235, w SaveTo

    id = jaźń.Save()

  Plik „C: \ Program Files \ Python36 \ lib \ site-packages \ GrabzIt \ GrabzItClient.py”, wiersz 209, w Save

    obj = self._take (sig, callBackURL)

  Plik „C: \ Program Files \ Python36 \ lib \ site-packages \ GrabzIt \ GrabzItClient.py”, wiersz 223, w _take

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

  Plik „C: \ Program Files \ Python36 \ lib \ site-packages \ GrabzIt \ GrabzItClient.py”, wiersz 629, w HTTPPost

    h.endheaders ()

  Plik „C: \ Program Files \ Python36 \ lib \ http \ client.py”, wiersz 1234, w nagłówkach

    self._send_output (message_body, encode_chunked = encode_chunked)

  Plik „C: \ Program Files \ Python36 \ lib \ http \ client.py”, wiersz 1026, w _send_output

    self.send (msg)

  Plik „C: \ Program Files \ Python36 \ lib \ http \ client.py”, wiersz 964, wysyłany

    self.connect ()

  Plik „C: \ Program Files \ Python36 \ lib \ http \ client.py”, wiersz 936, w połączeniu

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

  Plik „C: \ Program Files \ Python36 \ lib \ socket.py”, wiersz 704, w create_connection

    dla res w getaddrinfo (host, port, 0, SOCK_STREAM):

  Plik „C: \ Program Files \ Python36 \ lib \ socket.py”, wiersz 743, w getaddrinfo

    dla res w _socket.getaddrinfo (host, port, rodzina, typ, proto, flagi):

socket.gaierror: [Errno 11001] getaddrinfo nie powiodło się

 

źródło : (zainstalowałem GrabzIt i dostałem KLUCZ APLIKACJI i TAJEMNICA APLIKACJI)

z GrabzIt zaimportuj GrabzItClient

 

grabzIt = GrabzItClient.GrabzItClient (KLUCZ APLIKACJI, TAJEMNICA APLIKACJI)

grabzIt.HTMLToDOCX(" Witaj świecie! ") 

grabzIt.SaveTo(„dokumenty / wynik.docx”) 

 

czy możesz mi powiedzieć, co mam zrobić?

Zapytane przez anonimowego użytkownika 21

Witamy w społeczności!

Zwykle a socket.gaierror: [Errno 11001] getaddrinfo nie powiodło się powstaje, gdy kod jest wywoływany zza zapory ogniowej lub serwera proxy. Upewnij się, że aplikacja ma dostęp do portu 80.

Odpowiedział GrabzIt Support w dniu 21 sierpnia 2018 r

Dziękuję za Twoją odpowiedź.

Tak, to jest problem z serwerem proxy. Działa OK, kiedy zmieniam inny komputer, który nie ma serwera proxy.

Jak może działać z proxy?

Odpowiedział anonimowy 21 sierpnia 2018

To będzie nowa funkcja. Szukamy, czy możemy zmienić klienta Python, aby umożliwić korzystanie z serwerów proxy.

Jeśli będzie to możliwe, skontaktujemy się z Tobą z poprawką. Możesz spróbować sam, jeśli chcesz, ponieważ wszyscy nasi klienci są open source: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

Odpowiedział GrabzIt Support w dniu 21 sierpnia 2018 r

Dodaliśmy nową funkcję. Wystarczy pobrać plik GrabzItClient.py i zastąpić swoją kopię tutaj: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

Następnie możesz ustawić adres URL serwera proxy, korzystając z nowej metody SetLocalProxy, na przykład:

grabzIt.SetLocalProxy („http: // 123.123.123.123: 21231”)

Daj nam teraz, jak idzie, a wkrótce wydamy nowe wydanie!

Odpowiedział GrabzIt Support w dniu 21 sierpnia 2018 r

Dziękuję za Twoją odpowiedź.

Wymieniłem GrabzItClient.py i zmieniłem moje źródło:

 

 

grabzIt = GrabzItClient.GrabzItClient (KLUCZ APLIKACJI, TAJEMNICA APLIKACJI)

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

grabzIt.HTMLToDOCX(" Witaj świecie! ") 

grabzIt.SaveTo(„dokumenty / wynik.docx”) 

 

użytkownik:xxx@jp.xxxxx.com

hasło:rrrrrrr

Serwer proxy:zzz.proxy.zzz.zzzzzzz.com

Port:8080

 

Komunikat o błędzie:

Traceback (ostatnie połączenie ostatnio):
  Plik „GrabzIt_test.py”, wiersz 54, w
    grabzIt.SaveTo(„result.docx”)
  Plik „C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py”, wiersz 487, w SaveTo
    id = jaźń.Save()
  Plik „C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py”, wiersz 435, w Save
    obj = self._take (sig, callBackURL)
  Plik „C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py”, wiersz 463, w _take
    return self.HTTPPost (self.request.url, self.request.options._getParameters (self.applicationKey, sig, callBackURL, 'html', quote (self.request.data)))
  Plik „C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py”, wiersz 1307, w HTTPPost
    headers ['Proxy-Authorization'] = 'Basic' + base64.b64encode (auth)
  Plik „C: \ Program Files \ Python36 \ lib \ base64.py”, wiersz 58, w b64encode
    zakodowane = binascii.b2a_base64 (s, newline = False)
TypeError: wymagany jest obiekt podobny do bajtu, a nie „str”

 

ten sam komunikat o błędzie, nawet ja zmieniłem Ustaw lokalne proxy z "http://xxx@jp.xxxxx.com:yyyyyyy@zzz.proxy.zzz.zzzzzzz.com:8080" do "http://xxx%40jp.xxxxx.com:yyyyyyy@zzz.proxy.zzz.zzzzzzz.com:8080"

 

Odpowiedział anonimowy 22 sierpnia 2018

przepraszam, może ustawiłem zły serwer proxy.

Zmieniłem proxy na „http: // the_other_proxy_server: port” i komunikat o błędzie stał się:

Traceback (ostatnie połączenie ostatnio):
  Plik „GrabzIt_test.py”, wiersz 54, w
    grabzIt.SaveTo(„result.docx”)
  Plik „C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py”, wiersz 487, w SaveTo
    id = jaźń.Save()
  Plik „C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py”, wiersz 435, w Save
    obj = self._take (sig, callBackURL)
  Plik „C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py”, wiersz 463, w _take
    return self.HTTPPost (self.request.url, self.request.options._getParameters (self.applicationKey, sig, callBackURL, 'html', quote (self.request.data)))
  Plik „C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py”, wiersz 1327, w HTTPPost
    h.endheaders ()
  Plik „C: \ Program Files \ Python36 \ lib \ http \ client.py”, wiersz 1234, w nagłówkach
    self._send_output (message_body, encode_chunked = encode_chunked)
  Plik „C: \ Program Files \ Python36 \ lib \ http \ client.py”, wiersz 1026, w _send_output
    self.send (msg)
  Plik „C: \ Program Files \ Python36 \ lib \ http \ client.py”, wiersz 964, wysyłany
    self.connect ()
  Plik „C: \ Program Files \ Python36 \ lib \ http \ client.py”, wiersz 940, w połączeniu
    self._tunnel ()
  Plik „C: \ Program Files \ Python36 \ lib \ http \ client.py”, wiersz 919, w _tunnel
    message.strip ()))
OSError: Połączenie tunelowe nie powiodło się: Wymagane uwierzytelnianie serwera proxy 407

Odpowiedział anonimowy 22 sierpnia 2018

Musisz podać swoją nazwę użytkownika i hasło w następujący sposób: http://username:password@example.com:12335

Odpowiedział GrabzIt Support 22 sierpnia 2018 r

Tak, podałem swoją nazwę użytkownika i hasło (pytanie w środę, 22 sierpień, 2018 09: 34: 43 AM) jak:

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

nazwa użytkownika to adres e-mail (xxx@jp.xxxxx.com), więc zmieniłem na xxx% 40jp.xxxxx.com

ale jest to ten sam komunikat o błędzie: TypeError: wymagany jest obiekt podobny do bajtu, a nie „str”

Odpowiedział anonimowy 22 sierpnia 2018

Przepraszam, przegapiłem twoją poprzednią odpowiedź. Myślę, że jest to problem z Pythonem 3 i wydałem poprawkę, która powinna rozwiązać błąd. Czy możesz ponownie zaktualizować GrabzItClient.py z: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

Odpowiedział GrabzIt Support 22 sierpnia 2018 r

Zastąpiłem plik python i znajduję nowy komunikat o błędzie:

Traceback (ostatnie połączenie ostatnio):

  Plik „GrabzIt_test.py”, wiersz 54, w

    grabzIt.SaveTo(„result.docx”)

  Plik „C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py”, wiersz 244, w SaveTo

    id = jaźń.Save()

  Plik „C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py”, wiersz 218, w Save

    obj = self._take (sig, callBackURL)

  Plik „C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py”, wiersz 232, w _take

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

  Plik „C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py”, wiersz 661, w HTTPPost

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

Błąd typu: musi być ciągiem, a nie bajtami

Odpowiedział anonimowy 22 sierpnia 2018

Ok, zdekodowaliśmy to into ascii. Nie używamy Pythona 3, dlatego nas to zaskoczyło. Zaktualizuj swój kod tutaj: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

Ponieważ jest to oprogramowanie typu open source, możesz debugować i zatwierdzać wszelkie ulepszenia, które chcesz wprowadzić w Github. Ponieważ nie mamy dostępu do Twojej konfiguracji.

Odpowiedział GrabzIt Support 22 sierpnia 2018 r

Wielkie dzięki za Twoją pomoc.

OSError: Połączenie tunelowe nie powiodło się: Wymagane uwierzytelnianie serwera proxy 407

Spróbuję debugować. 

Odpowiedział anonimowy 22 sierpnia 2018

Wydaje nam się, że wiemy, na czym polega problem, jednak będzie to wymagało przepisania części kodu. Po zakończeniu skontaktujemy się z Tobą. Mam nadzieję, że za 24 godzin.

Odpowiedział GrabzIt Support 22 sierpnia 2018 r

Uważam, że naprawiliśmy problem! Możesz pobrać najnowszą wersję tutaj: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

Odpowiedział GrabzIt Support 22 sierpnia 2018 r

Dzięki za odpowiedź.

Nowy komunikat o błędzie:

Traceback (ostatnie połączenie ostatnio):
  Plik „GrabzIt_test.py”, wiersz 54, w
    grabzIt.SaveTo(„result.docx”)
  Plik „C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py”, wiersz 243, w SaveTo
    id = jaźń.Save()
  Plik „C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py”, wiersz 217, w Save
    obj = self._take (sig, callBackURL)
  Plik „C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py”, wiersz 231, w _take
    return self.HTTPPost (self.request.url, self.request.options._getParameters (self.applicationKey, sig, callBackURL, 'html', quote (self.request.data)))
  Plik „C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py”, wiersz 629, w HTTPPost
    h = self._getConnection ()
  Plik „C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py”, wiersz 679, w _getConnection
    h.putheader („proxy-authentication”, „Basic” + encodedAuth)
  Plik „C: \ Program Files \ Python36 \ lib \ http \ client.py”, wiersz 1201, w putheader
    raise CannotSendHeader ()
http.client.CannotSendHeader

 

Odpowiedział anonimowy 22 sierpnia 2018

Wprowadziliśmy kilka drobnych usprawnień w: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

Przetestowałem to w Pythonie 2.7, 3.4 i 3.6 i działa we wszystkich środowiskach, z serwerami proxy i bez nich oraz z autoryzowanymi serwerami proxy.

Jeśli nadal nie działa, będziesz musiał debugować kod.

Odpowiedział GrabzIt Support 23 sierpnia 2018 r

Dziękuję za odpowiedź.

Debuguję swoje źródło.

Nawiasem mówiąc, czy przetestowałeś nazwę użytkownika, która jest e-mailem jak xxx@yyy.com?

Odpowiedział anonimowy 23 sierpnia 2018

Nie, nie musiałem tego poprawnie kodować i dekodować, więc może to jest problem.

Odpowiedział GrabzIt Support 23 sierpnia 2018 r