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

Zgłoś błąd, gdy uruchamiam wersję demonstracyjną Pythona

Zadaj pytania, jak przechwytywać lub konwertować strony internetowe lub HTML into obrazy, dokumenty CSV, PDF lub DOCX, a także informacje na temat konwertowania filmów into animowane pliki GIF za pomocą naszego interfejsu API.

błąd:

Traceback (ostatnie połączenie ostatnio):

  Plik „GrabzItClient.py”, linia 6, w

    złapTo.SaveTo(„dokumenty/wynik.docx”)

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

    identyfikator = 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

    zwróć 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 końcowych

    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 pliku 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):

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

 

źródło: (zainstalowałem GrabzIt i otrzymałem KLUCZ APLIKACJI oraz TAJNE APLIKACJE)

z GrabzIt import GrabzItClient

 

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

złapTo.HTMLToDOCX(„ Witaj świecie! ") 

złapTo.SaveTo(„dokumenty/wynik.docx”) 

 

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

Pytanie zadane przez anonima w dniu 21 sierpnia 2018 r

Witamy w społeczności!

Zwykle a gniazdo.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.

Odpowiedź udzielona przez wsparcie GrabzIt w dniu 21 sierpnia 2018 r

Dziękuję za Twoją odpowiedź.

Tak, to problem serwera proxy. Działa prawidłowo, gdy zmieniam inny komputer, który nie ma serwera proxy.

Jak to może działać z proxy?

Odpowiedź anonimowa z dnia 21 sierpnia 2018 r

Będzie to nowa funkcja. Zastanawiamy się, czy możemy zmienić klienta Pythona, aby umożliwić korzystanie z serwerów proxy.

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

Odpowiedź udzielona przez wsparcie GrabzIt w dniu 21 sierpnia 2018 r

Dodaliśmy nową funkcję. Po prostu pobierz plik GrabzItClient.py i zastąp swoją kopię stąd: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

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

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

Daj nam teraz znać, jak poszło, a wkrótce wydamy nowe wydanie!

Odpowiedź udzielona przez wsparcie GrabzIt 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, SEKRET APLIKACJI)

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

złapTo.HTMLToDOCX(„ Witaj świecie! ") 

złapTo.SaveTo(„dokumenty/wynik.docx”) 

 

użytkownik:xxx@jp.xxxxx.com

hasło:yyyyyyy

Serwer proxy:zzz.proxy.zzz.zzzzzz.com

Port:8080

 

Komunikat o błędzie:

Traceback (ostatnie połączenie ostatnio):
  Plik „GrabzIt_test.py”, linia 54, w
    złapTo.SaveTo(„wynik.docx”)
  Plik „C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py”, wiersz 487, w SaveTo
    identyfikator = 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
    zwróć 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'] = 'Podstawowy' + base64.b64encode(auth)
  Plik „C:\Program Files\Python36\lib\base64.py”, wiersz 58, w ​​kodzie b64encode
    zakodowane = binascii.b2a_base64(s, nowa linia=Fałsz)
TypeError: wymagany jest obiekt podobny do bajtu, a nie „str”

 

ten sam komunikat o błędzie, nawet ja się zmieniłem UstawLocalProxy 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"

 

Odpowiedź anonimowa z dnia 22 sierpnia 2018 r

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

Zmieniłem serwer proxy na „http://the_other_proxy_server:port” i komunikat o błędzie wyglądał następująco:

Traceback (ostatnie połączenie ostatnio):
  Plik „GrabzIt_test.py”, linia 54, w
    złapTo.SaveTo(„wynik.docx”)
  Plik „C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py”, wiersz 487, w SaveTo
    identyfikator = 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
    zwróć 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 końcowych
    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”, linia 919, w _tunnel
    wiadomość.pasek()))
OSError: Połączenie tunelowe nie powiodło się: wymagane uwierzytelnienie proxy 407

Odpowiedź anonimowa z dnia 22 sierpnia 2018 r

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

Odpowiedź udzielona przez wsparcie GrabzIt w dniu 22 sierpnia 2018 r

Tak, podałem swoją nazwę użytkownika i hasło (pytanie ze środy, 22 sierpnia 2018 o godzinie 09:34:43) w następujący sposób:

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”

Odpowiedź anonimowa z dnia 22 sierpnia 2018 r

Przepraszam, przeoczyłem Twoją poprzednią odpowiedź. Myślę, że jest to problem z Pythonem 3 i wydaliśmy 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

Odpowiedź udzielona przez wsparcie GrabzIt w dniu 22 sierpnia 2018 r

Zastąpiłem plik Pythona i znalazłem nowy komunikat o błędzie:

Traceback (ostatnie połączenie ostatnio):

  Plik „GrabzIt_test.py”, linia 54, w

    złapTo.SaveTo(„wynik.docx”)

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

    identyfikator = 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

    zwróć 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'] = 'Podstawowe' + zakodowaneAuth

TypeError: musi być str, a nie bajtami

Odpowiedź anonimowa z dnia 22 sierpnia 2018 r

OK, rozszyfrowaliśmy to into ascii. Nie używamy Pythona 3 i dlatego nas to przykuł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 swobodnie debugować i wprowadzać wszelkie ulepszenia, jakie chcesz, w Githubie. Ponieważ nie mamy dostępu do Twojej konfiguracji.

Odpowiedź udzielona przez wsparcie GrabzIt w dniu 22 sierpnia 2018 r

Wielkie dzięki za Twoją pomoc.

OSError: Połączenie tunelowe nie powiodło się: wymagane uwierzytelnienie proxy 407

Spróbuję zdebugować. 

Odpowiedź anonimowa z dnia 22 sierpnia 2018 r

Sądzimy, że wiemy, na czym polega problem, jednak będzie to wymagało ponownego napisania części kodu. Dlatego skontaktujemy się z Tobą, gdy wszystko będzie gotowe. Mam nadzieję, że za 24 godziny.

Odpowiedź udzielona przez wsparcie GrabzIt w dniu 22 sierpnia 2018 r

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

Odpowiedź udzielona przez wsparcie GrabzIt w dniu 22 sierpnia 2018 r

Dzięki za odpowiedź.

Nowy komunikat o błędzie:

Traceback (ostatnie połączenie ostatnio):
  Plik „GrabzIt_test.py”, linia 54, w
    złapTo.SaveTo(„wynik.docx”)
  Plik „C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py”, wiersz 243, w SaveTo
    identyfikator = 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
    zwróć 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('autoryzacja proxy', 'podstawowa' + zakodowane uwierzytelnienie)
  Plik „C:\Program Files\Python36\lib\http\client.py”, wiersz 1201, w nagłówku put
    podnieś CannotSendHeader()
Nagłówek http.client.CannotSend

 

Odpowiedź anonimowa z dnia 22 sierpnia 2018 r

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

Przetestowałem go 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ł zdebugować kod.

Odpowiedź udzielona przez wsparcie GrabzIt w dniu 23 sierpnia 2018 r

Dziękuję za odpowiedź.

Będę debugować moje źródło.

Przy okazji, czy przetestowałeś nazwę użytkownika, która jest adresem e-mail, np. xxx@yyy.com?

Odpowiedź anonimowa z dnia 23 sierpnia 2018 r

Nie, nie, to musiałoby być odpowiednio zakodowane i zdekodowane, więc może w tym jest problem.

Odpowiedź udzielona przez wsparcie GrabzIt w dniu 23 sierpnia 2018 r