問題タブ [urllib3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - urllib3 を使用して生の html 文字列を出力するには?
以下のステートメントを使用して、html 文字列を取得します。
しかし、出力は次のとおりです。
生のhtml文字列を取得するにはどうすればよいですか?
python - urllib3 で証明書の検証を無視する
自己署名証明書を持つプライベート サービスに対して urllib3 を使用しています。urllib3 に証明書エラーを無視させ、とにかく要求を行う方法はありますか?
以下を使用する場合:
次のエラーが発生します。
を使用cURL
して、サービスから期待される応答を得ることができます
python - 生の POST データを urllib3 に渡すにはどうすればよいですか?
urllib3 を使用して、JSON でエンコードされたデータを投稿しようとしています。POST ペイロードを、コンテンツ タイプが application/json の生の JSON 文字列にしたいだけです。これを行う方法がわかりません。
urllib3 のドキュメントでは、HTML フォームが URL で URL エンコードされる方法のように、「フィールド」、つまり (キー、値) のペアを持つディクテーションでデータを投稿する方法について説明しています。しかし、私はそれをしたくありません。
私が得ることができた最も近いものはこれです(私が見つけることができるどこにも文書化されていないので、データを置く場所を推測しました):
これにより、この urllib3 エラーが発生します。
ご指摘ありがとうございます。
download - ファイルを分割してダウンロードする方法
サイズが 1Gb までのファイルをどこにでもダウンロードするプログラムを作成しています。現在、ファイルをダウンロードするために requests パッケージを使用していますが、動作しますが (時々タイムアウトすると思います)、非常に遅いです。urllib2 を使用したマルチパート ダウンロードの例をいくつか見てきましたが、そのパッケージに機能がある場合は、urllib3 または要求を使用する方法を探しています。
python - Python 2.7 の urllib3 Google App Engine の SNI エラー
SNI を使用して Google App Engine でホストされているサイトから HTTPS ページをダウンロードしようとしています。どのライブラリを使用しても、次のエラーが発生します。
urllib3 openssl モンキーパッチを使用するなど、さまざまな方法でエラーを解決しようとしました。
しかし、上記と同じエラーが常に発生します。
何か案は?
python - Web クローラーは約 1MB/秒の速度を超えることはできません
何百万ものドメインのリストから 1 ~ 3 ページを取得する Web クローラーを構築しています。マルチスレッドで Python を使用しています。束) とツイスト、スクレイピーですが、どれも約 10 メガビット以上の帯域幅を使用することを許可していません (私は 60 メガビットの速度を持っています)。通常、約 100-300 スレッドで最大になり、その後、失敗した要求が発生します。 . php/curlでもこの問題が発生しました。urllib3 と Threads モジュール (Python) を使用して google plus ページからスクレイピングし、100mbit 接続を最大化するスクレーパーを持っています (これは、同じホストで開いているソケットを再利用しており、google が高速であるためと考えられます)。ネットワーク応答)
これは、pycurl を使用したスクリプトの 1 つの例です。URL を含む csv ファイルから URL を読み取っています。
私のプロセッサ/メモリはほとんど使用されていないため、ボトルネックは間違いなくネットワーク IO です。100 メガビット以上のフル接続を使用できる同様のスクレーパーの作成に成功した人はいますか?
スクレイピングコードの速度を上げる方法についての意見は大歓迎です
python - プロキシの背後にある場合、Python Requests ライブラリは HTTPS URL のリダイレクトを処理できません
HTTPS を使用する場合の Requests ライブラリのリダイレクト処理に問題があることを発見したと思います。私が知る限り、これはサーバーが Requests クライアントを別の HTTPS リソースにリダイレクトする場合にのみ問題になります。
私が使用しているプロキシは、ブラウザーで問題なく使用できるため、HTTPS と CONNECT メソッドをサポートしていることを保証できます。urllib3 ライブラリの 1.7.1 を使用している Requests ライブラリのバージョン 2.1.0 を使用しています。
Wireshark でトランザクションを監視しましたが、 https://www.paypal.com/ の最初のトランザクションは表示されますが、 https://www.paypal.com/homeには何も表示されません。デバッガーを使用してスタック内をさらに深くデバッグすると、タイムアウトが発生し続けるため、ここからどこに行くべきかわかりません。リダイレクトの結果として /home のリクエストが表示されないことは間違いありません。したがって、プロキシに送信される前に、コードでエラーが発生している必要があります。
これが本当にバグなのか、それとも何か間違っているのか知りたいです。トラフィックを送信できるプロキシにアクセスできる限り、再現は非常に簡単です。以下のコードを参照してください。
これは、urllib3 を直接使用した場合にも発生します。おそらく主に、Requests が内部で使用する urllib3 のバグですが、私はより高いレベルの requests ライブラリを使用しています。下記参照:
リクエストを使用した場合のトレースバックは次のとおりです。
アップデート:
この問題は、通常の 301 リダイレクト (Moved Permanently) ではなく、302 (Found) リダイレクトでのみ発生するようです。また、Chrome ブラウザでは、Paypal がリダイレクトを返さないことに気付きました。この実験では Chrome のユーザー エージェントを借りていますが、リクエストを使用するとリダイレクトが表示されます。より多くのデータ ポイントを取得するために、302 を返す URL をさらに探しています。
これは、すべての URL で機能するか、少なくともこの動作が見られる理由を理解するために必要です。
python - どの urllib を選択すればよいですか?
ご存知のように、python には 2 つの組み込み URL ライブラリがあります。
urllib
urllib2
およびサードパーティのライブラリ:
urllib3
私の要件が GET メソッドによって API を要求することだけである場合は、JSON 文字列を返すと仮定します。
どのライブラリを使用する必要がありますか? 重複した機能がありますか?
私のrequireを実装できる場合urllib
でも、要件がますます複雑になりurllib
、機能に適合しない場合は、その時点で別のライブラリをインポートする必要がありますが、実際には1つのライブラリのみをインポートしたいです.それらは私を混乱させる可能性があります。それらの間の方法はまったく異なると思います。
だから今、私はどのライブラリを使うべきか混乱してurllib3
います.