Инструменты для захвата и конвертирования Интернета
Интернет-сообщество GrabzIt

Выдает ошибку, когда я запускаю демо на python

ошибка:

Traceback (последний последний вызов):

  Файл "GrabzItClient.py", строка 6, в

    grabzIt.SaveTo( "Документы / result.docx")

  Файл "C: \ Program Files \ Python36 \ lib \ site-packages \ GrabzIt \ GrabzItClient.py", строка 235, в SaveTo

    id = яSave()

  Файл "C: \ Program Files \ Python36 \ lib \ site-packages \ GrabzIt \ GrabzItClient.py", строка 209, в Save

    obj = self._take (sig, callBackURL)

  Файл "C: \ Program Files \ Python36 \ lib \ site-packages \ GrabzIt \ GrabzItClient.py", строка 223, в _take

    вернуть self.HTTPPost (self.request.url, self.request.options._getParameters (self.applicationKey, sig, callBackURL, 'html', цитата (self.request.data)))

  Файл "C: \ Program Files \ Python36 \ lib \ site-packages \ GrabzIt \ GrabzItClient.py", строка 629, в HTTPPost

    h.endheaders ()

  Файл "C: \ Program Files \ Python36 \ lib \ http \ client.py", строка 1234, в заголовках

    self._send_output (message_body, encode_chunked = encode_chunked)

  Файл "C: \ Program Files \ Python36 \ lib \ http \ client.py", строка 1026, в _send_output

    self.send (MSG)

  Файл "C: \ Program Files \ Python36 \ lib \ http \ client.py", строка 964, в отправке

    self.connect ()

  Файл "C: \ Program Files \ Python36 \ lib \ http \ client.py", строка 936, в подключении

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

  Файл "C: \ Program Files \ Python36 \ lib \ socket.py", строка 704, в create_connection

    для res в getaddrinfo (хост, порт, 0, SOCK_STREAM):

  Файл "C: \ Program Files \ Python36 \ lib \ socket.py", строка 743, в getaddrinfo

    для res в _socket.getaddrinfo (хост, порт, семейство, тип, прото, флаги):

socket.gaierror: [Errno 11001] сбой getaddrinfo

 

Источник : (Я установил GrabzIt и получил КЛЮЧ ОТ ПРИЛОЖЕНИЯ и СЕКРЕТ ПРИЛОЖЕНИЯ)

от GrabzIt импорт GrabzItClient

 

grabzIt = GrabzItClient.GrabzItClient (КЛЮЧ ОТ ПРИЛОЖЕНИЯ, СЕКРЕТ ПРИЛОЖЕНИЯ)

grabzIt.HTMLToDOCX(" Привет мир! ") 

grabzIt.SaveTo( "Документы / result.docx") 

 

не могли бы вы сказать мне, что мне делать?

На вопрос анонимного 21 августа 2018 г.

Добро пожаловать в сообщество!

Обычно socket.gaierror: [Errno 11001] сбой getaddrinfo вызывается, когда код вызывается из-за брандмауэра или прокси. Пожалуйста, убедитесь, что приложение имеет доступ к порту 80.

Ответ от GrabzIt Support 21 августа 2018 г.

Спасибо за ответ.

Да, это проблема прокси. Он работает нормально, когда я заменяю другой компьютер, на котором нет прокси.

Как это может работать с прокси?

Отвечено анонимным 21 августа 2018 г.

Это будет новая функция. Мы ищем, сможем ли мы изменить клиент Python для включения использования прокси-серверов.

Если возможно, мы вернемся к вам с исправлением. Вы можете попробовать сами, если хотите, поскольку все наши клиенты имеют открытый исходный код: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

Ответ от GrabzIt Support 21 августа 2018 г.

Мы добавили новую функцию. Просто скачайте файл GrabzItClient.py и замените его здесь: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

Затем вы можете установить прокси-адрес вашего прокси-сервера, используя новый метод SetLocalProxy, например:

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

Пожалуйста, дайте нам знать, как это происходит, и мы скоро выпустим новый релиз!

Ответ от GrabzIt Support 21 августа 2018 г.

Спасибо за ответ.

Я заменил GrabzItClient.py и изменил мой источник:

 

 

grabzIt = GrabzItClient.GrabzItClient (КЛЮЧ ОТ ПРИЛОЖЕНИЯ, СЕКРЕТ ПРИЛОЖЕНИЯ)

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

grabzIt.HTMLToDOCX(" Привет мир! ") 

grabzIt.SaveTo( "Документы / result.docx") 

 

Пользователь:xxx@jp.xxxxx.com

Пароль:YYYYYYY

Прокси сервер:zzz.proxy.zzz.zzzzzzz.com

порт:8080

 

сообщение об ошибке:

Traceback (последний последний вызов):
  Файл "GrabzIt_test.py", строка 54, в
    grabzIt.SaveTo( "Result.docx")
  Файл "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", строка 487, в SaveTo
    id = яSave()
  Файл "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", строка 435, в Save
    obj = self._take (sig, callBackURL)
  Файл "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", строка 463, в _take
    вернуть self.HTTPPost (self.request.url, self.request.options._getParameters (self.applicationKey, sig, callBackURL, 'html', цитата (self.request.data)))
  Файл "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", строка 1307, в HTTPPost
    заголовки ['Proxy-Authorization'] = 'Basic' + base64.b64encode (auth)
  Файл "C: \ Program Files \ Python36 \ lib \ base64.py", строка 58, в b64encode
    encoded = binascii.b2a_base64 (s, новая строка = False)
TypeError: требуется байтоподобный объект, а не 'str'

 

то же сообщение об ошибке, даже я изменил SetLocalProxy от "http://xxx@jp.xxxxx.com:yyyyyyy@zzz.proxy.zzz.zzzzzzz.com:8080"В "http://xxx%40jp.xxxxx.com:yyyyyyy@zzz.proxy.zzz.zzzzzzz.com:8080"

 

Отвечено анонимным 22 августа 2018 г.

извините, возможно я установил не тот прокси.

Я изменил прокси на «http: // the_other_proxy_server: порт», и сообщение об ошибке стало:

Traceback (последний последний вызов):
  Файл "GrabzIt_test.py", строка 54, в
    grabzIt.SaveTo( "Result.docx")
  Файл "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", строка 487, в SaveTo
    id = яSave()
  Файл "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", строка 435, в Save
    obj = self._take (sig, callBackURL)
  Файл "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", строка 463, в _take
    вернуть self.HTTPPost (self.request.url, self.request.options._getParameters (self.applicationKey, sig, callBackURL, 'html', цитата (self.request.data)))
  Файл "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", строка 1327, в HTTPPost
    h.endheaders ()
  Файл "C: \ Program Files \ Python36 \ lib \ http \ client.py", строка 1234, в заголовках
    self._send_output (message_body, encode_chunked = encode_chunked)
  Файл "C: \ Program Files \ Python36 \ lib \ http \ client.py", строка 1026, в _send_output
    self.send (MSG)
  Файл "C: \ Program Files \ Python36 \ lib \ http \ client.py", строка 964, в отправке
    self.connect ()
  Файл "C: \ Program Files \ Python36 \ lib \ http \ client.py", строка 940, в подключении
    self._tunnel ()
  Файл "C: \ Program Files \ Python36 \ lib \ http \ client.py", строка 919, в _tunnel
    message.strip ()))
OSError: Ошибка подключения к туннелю: требуется проверка подлинности прокси 407

Отвечено анонимным 22 августа 2018 г.

Вам необходимо указать свое имя пользователя и пароль следующим образом: http://username:password@example.com:12335

Ответ от GrabzIt Support 22 августа 2018 г.

Да, я указал свое имя пользователя и пароль (вопрос в среду, 22, август, 2018, 09: 34: 43 AM), например:

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

имя пользователя - адрес электронной почты (xxx@jp.xxxxx.com), поэтому я изменил на xxx% 40jp.xxxxx.com

но это то же сообщение об ошибке: TypeError: требуется объект, похожий на байты, а не 'str'

Отвечено анонимным 22 августа 2018 г.

Извините, я пропустил ваш предыдущий ответ. Я думаю, что это проблема Python 3, и я выпустил исправление, которое должно устранить эту ошибку. Не могли бы вы обновить GrabzItClient.py еще раз с: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

Ответ от GrabzIt Support 22 августа 2018 г.

Я заменил файл python и нашел новое сообщение об ошибке:

Traceback (последний последний вызов):

  Файл "GrabzIt_test.py", строка 54, в

    grabzIt.SaveTo( "Result.docx")

  Файл "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", строка 244, в SaveTo

    id = яSave()

  Файл "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", строка 218, в Save

    obj = self._take (sig, callBackURL)

  Файл "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", строка 232, в _take

    вернуть self.HTTPPost (self.request.url, self.request.options._getParameters (self.applicationKey, sig, callBackURL, 'html', цитата (self.request.data)))

  Файл "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", строка 661, в HTTPPost

    заголовки ['Proxy-Authorization'] = 'Basic' + encodedAuth

Ошибка типа: должна быть строковой, а не байтовой

Отвечено анонимным 22 августа 2018 г.

Хорошо, мы расшифровали его intо ascii. Мы не используем Python 3, поэтому он нас и поймал. Обновите свой код здесь: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

Поскольку это открытый исходный код, не стесняйтесь отлаживать и вносить любые улучшения, которые вы хотите, в Github. Поскольку у нас нет доступа к вашей настройке.

Ответ от GrabzIt Support 22 августа 2018 г.

Большое спасибо за вашу помощь.

OSError: Ошибка подключения к туннелю: требуется проверка подлинности прокси 407

Я постараюсь отлаживать. 

Отвечено анонимным 22 августа 2018 г.

Мы думаем, что знаем, в чем проблема, однако для этого потребуется переписать часть кода. Поэтому мы свяжемся с вами, когда закончим. Надеюсь, в 24 часов.

Ответ от GrabzIt Support 22 августа 2018 г.

Я считаю, что мы устранили проблему! Вы можете получить последнюю версию здесь: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

Ответ от GrabzIt Support 22 августа 2018 г.

Спасибо за ответ.

Новое сообщение об ошибке:

Traceback (последний последний вызов):
  Файл "GrabzIt_test.py", строка 54, в
    grabzIt.SaveTo( "Result.docx")
  Файл "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", строка 243, в SaveTo
    id = яSave()
  Файл "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", строка 217, в Save
    obj = self._take (sig, callBackURL)
  Файл "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", строка 231, в _take
    вернуть self.HTTPPost (self.request.url, self.request.options._getParameters (self.applicationKey, sig, callBackURL, 'html', цитата (self.request.data)))
  Файл "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", строка 629, в HTTPPost
    h = self._getConnection ()
  Файл "C: \ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py", строка 679, в _getConnection
    h.putheader («proxy-authorization», «Basic» + encodedAuth)
  Файл "C: \ Program Files \ Python36 \ lib \ http \ client.py", строка 1201, в putheader
    поднять CannotSendHeader ()
http.client.CannotSendHeader

 

Отвечено анонимным 22 августа 2018 г.

Мы внесли некоторые незначительные улучшения в: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

И протестировали его в Python 2.7, 3.4 и 3.6, и он работает во всех средах, с прокси и без прокси и с авторизованными прокси.

Если он все еще не работает для вас, вам нужно будет отладить код.

Ответ от GrabzIt Support 23 августа 2018 г.

Спасибо за ответ.

Я буду отлаживать мой источник.

Кстати, вы проверяли имя пользователя Email, например xxx@yyy.com?

Отвечено анонимным 23 августа 2018 г.

Нет, я не должен был бы быть должным образом закодирован и декодирован, так что, возможно, в этом проблема.

Ответ от GrabzIt Support 23 августа 2018 г.