Webをキャプチャして変換するツール
GrabzItのオンラインコミュニティ

Pythonでデモを実行するとエラーが発生する

エラー:

トレースバック(最後の最後の呼び出し):

  ファイル「GrabzItClient.py」、6行目、

    grabzIt。SaveTo(「documents / result.docx」)

  ファイル「C:\ Program Files \ Python36 \ lib \ site-packages \ GrabzIt \ GrabzItClient.py」、235行目 SaveTo

    id = self。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

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

  HTTPPostの36行目の「C:\ Program Files \ Python629 \ lib \ site-packages \ GrabzIt \ GrabzItClient.py」ファイル

    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)

  create_connectionのファイル「C:\ Program Files \ Python36 \ lib \ socket.py」、行704

    getaddrinfo(ホスト、ポート、0、SOCK_STREAM)の解像度:

  getaddrinfoのファイル「C:\ Program Files \ Python36 \ lib \ socket.py」、743行目

    _socket.getaddrinfo(host、port、family、type、proto、flags)のres:

socket.gaierror:[Errno 11001] getaddrinfoが失敗しました

 

ソース:(GrabzItをインストールし、アプリケーションキーとアプリケーションシークレットを取得しました)

GrabzItからGrabzItClientをインポート

 

grabzIt = GrabzItClient.GrabzItClient(APPLICATION KEY、APPLICATION SECRET)

grabzIt。HTMLToDOCX( " "こんにちは世界" ") 

grabzIt。SaveTo(「documents / result.docx」) 

 

どうしたらいいか教えてもらえますか?

21年2018月XNUMX日に匿名から質問

コミュニティへようこそ!

通常、 socket.gaierror:[Errno 11001] getaddrinfoが失敗しました ファイアウォールまたはプロキシの背後からコードが呼び出されているときに発生します。 アプリケーションがポート80にアクセスできることを確認してください。

21年2018月XNUMX日のGrabzItサポートによる回答

答えてくれてありがとう。

はい、プロキシの問題です。プロキシを持たない他のPCを変更しても問題ありません。

プロキシでどのように機能しますか?

21年2018月XNUMX日に匿名で回答

これは新しい機能です。 プロキシサーバーを使用できるようにPythonクライアントを変更できるかどうかを検討しています。

可能であれば、修正をお知らせします。 すべてのクライアントがオープンソースであるため、必要に応じて自分で試してみることができます:https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

21年2018月XNUMX日のGrabzItサポートによる回答

新しい機能を追加しました。 GrabzItClient.pyファイルをダウンロードして、ここからコピーを置き換えてください:https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

次に、新しいSetLocalProxyメソッドを使用して、プロキシサーバーのプロキシURLを設定できます。次に例を示します。

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

それがどうなるか今すぐお聞かせください、私たちはすぐに新しいリリースを行います!

21年2018月XNUMX日のGrabzItサポートによる回答

答えてくれてありがとう。

交換しました GrabzItClient.pyと私のソースを変更しました:

 

 

grabzIt = GrabzItClient.GrabzItClient(APPLICATION KEY、APPLICATION SECRET)

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

grabzIt。HTMLToDOCX( " "こんにちは世界" ") 

grabzIt。SaveTo(「documents / result.docx」) 

 

ユーザー:xxx@jp.xxxxx.com

パスワード:yyyyyyy

プロキシサーバー:zzz.proxy.zzz.zzzzzzz.com

ポート:8080

 

エラーメッセージ:

トレースバック(最後の最後の呼び出し):
  ファイル「GrabzIt_test.py」、54行目、
    grabzIt。SaveTo( "result.docx")
  ファイル「C:\ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py」の487行目 SaveTo
    id = self。Save()
  ファイル「C:\ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py」の435行目 Save
    obj = self._take(sig、callBackURL)
  ファイル「C:\ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py」、463行目、_take
    return self.HTTPPost(self.request.url、self.request.options._getParameters(self.applicationKey、sig、callBackURL、 'html'、quote(self.request.data)))
  HTTPPostのファイル「C:\ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py」の1307行目
    headers ['Proxy-Authorization'] = 'Basic' + base64.b64encode(auth)
  ファイル「C:\ Program Files \ Python36 \ lib \ base64.py」、58行目、b64encode
    encoded = binascii.b2a_base64(s、newline = 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月XNUMX日に匿名で回答

申し訳ありませんが、間違ったプロキシを設定した可能性があります。

プロキシを「http:// the_other_proxy_server:port」に変更すると、エラーメッセージが次のようになりました。

トレースバック(最後の最後の呼び出し):
  ファイル「GrabzIt_test.py」、54行目、
    grabzIt。SaveTo( "result.docx")
  ファイル「C:\ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py」の487行目 SaveTo
    id = self。Save()
  ファイル「C:\ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py」の435行目 Save
    obj = self._take(sig、callBackURL)
  ファイル「C:\ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py」、463行目、_take
    return self.HTTPPost(self.request.url、self.request.options._getParameters(self.applicationKey、sig、callBackURL、 'html'、quote(self.request.data)))
  HTTPPostのファイル「C:\ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py」の1327行目
    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月XNUMX日に匿名で回答

次のようにユーザー名とパスワードを指定する必要があります。 http://username:password@example.com:12335

22年2018月XNUMX日のGrabzItサポートによる回答

はい、ユーザー名とパスワードを指定しました(22年2018月09日水曜日34:43:XNUMX AMの質問):

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

ユーザー名はメールアドレス(xxx@jp.xxxxx.com)なので、xxx%40jp.xxxxx.comに変更しました

しかし、それは同じエラーメッセージです:TypeError: 'str'ではなく、バイトのようなオブジェクトが必要です

22年2018月XNUMX日に匿名で回答

申し訳ありませんが、前回の返信を逃しました。 これはPython3の問題であり、エラーを解決する修正をリリースしたと思います。 https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.pyからGrabzItClient.pyを再度更新できますか?

22年2018月XNUMX日のGrabzItサポートによる回答

Pythonファイルを置き換えて、新しいエラーメッセージを見つけました。

トレースバック(最後の最後の呼び出し):

  ファイル「GrabzIt_test.py」、54行目、

    grabzIt。SaveTo( "result.docx")

  ファイル「C:\ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py」の244行目 SaveTo

    id = self。Save()

  ファイル「C:\ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py」の218行目 Save

    obj = self._take(sig、callBackURL)

  ファイル「C:\ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py」、232行目、_take

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

  HTTPPostのファイル「C:\ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py」の661行目

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

TypeError:バイトではなくstrでなければなりません

22年2018月XNUMX日に匿名で回答

OK、デコードしました intoアスキー。 私たちはPython3を使用していません。そのため、PythonXNUMXが私たちを捕らえました。 ここからコードを更新してください:https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

これはオープンソースであるため、Githubに必要な改善点をデバッグしてコミットしてください。 設定にアクセスできないため。

22年2018月XNUMX日のGrabzItサポートによる回答

ご協力いただき誠にありがとうございます。

OSError:トンネル接続に失敗しました:407プロキシ認証が必要です

デバッグしてみます。 

22年2018月XNUMX日に匿名で回答

問題が何であるかはわかっていると思いますが、コードの一部を書き直す必要があります。 完了したらご連絡いたします。 24時間で願っています。

22年2018月XNUMX日のGrabzItサポートによる回答

問題は修正されたと思います。 最新のバージョンはここで入手できます:https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

22年2018月XNUMX日のGrabzItサポートによる回答

返信いただきありがとうございます。

新しいエラーメッセージ:

トレースバック(最後の最後の呼び出し):
  ファイル「GrabzIt_test.py」、54行目、
    grabzIt。SaveTo( "result.docx")
  ファイル「C:\ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py」の243行目 SaveTo
    id = self。Save()
  ファイル「C:\ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py」の217行目 Save
    obj = self._take(sig、callBackURL)
  ファイル「C:\ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py」、231行目、_take
    return self.HTTPPost(self.request.url、self.request.options._getParameters(self.applicationKey、sig、callBackURL、 'html'、quote(self.request.data)))
  HTTPPostのファイル「C:\ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py」の629行目
    h = self._getConnection()
  _getConnectionのファイル「C:\ TEST \ GrabzIt_python \ GrabzIt \ GrabzItClient.py」、行679
    h.putheader( 'proxy-authorization'、 'Basic' + encodedAuth)
  ファイル「C:\ Program Files \ Python36 \ lib \ http \ client.py」、1201行目、putheader
    CannotSendHeader()を発生させます
http.client.CannotSendHeader

 

22年2018月XNUMX日に匿名で回答

https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.pyにいくつかのマイナーな改良を加えました。

また、Python 2.7、3.4、および3.6でテストし、すべての環境で、プロキシの有無にかかわらず、認可されたプロキシで動作します。

それでも動作しない場合は、コードをデバッグする必要があります。

23年2018月XNUMX日のGrabzItサポートによる回答

お返事ありがとうございます。

ソースをデバッグします。

ところで、xxx @ yyy.comのような電子メールであるユーザー名をテストしましたか?

23年2018月XNUMX日に匿名で回答

いいえ、適切にエンコードおよびデコードする必要はなかったので、それが問題である可能性があります。

23年2018月XNUMX日のGrabzItサポートによる回答