問題タブ [urllib]
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 - TOR ネットワークを介して urllib リクエストをルーティングする方法は?
TOR ネットワークを介して urllib リクエストをルーティングする方法は?
gzip - Python 3でgzipされたサーバー応答を解凍する最良の方法は何ですか?
私はこれがうまくいくと思っていました:
しかし、そうではありません。Dive Into Pythonはこの例で StringIOを使用していますが、Python 3 にはそれがないようです。それを行う正しい方法は何ですか?
python - Python: 大きなファイルをローカル パスにダウンロードし、カスタム http ヘッダーを設定する
http URL からローカル ファイルにファイルをダウンロードしようとしています。ファイルは十分に大きいので、ファイル全体を単一の巨大な文字列としてではなく、ダウンロードしてチャンクに保存したいと思いread()
ます。write()
のインターフェースは、urllib.urlretrieve
本質的に私が欲しいものです。ただし、経由でダウンロードするときにリクエストヘッダーを設定する方法がわかり urllib.urlretrieve
ません。これは、私が行う必要があることです。
を使用すると、そのオブジェクトurllib2
を介してリクエスト ヘッダーを設定できます。ただし、ファイルをディスク上のパスに直接ダウンロードするためRequest
の API は見当たりません。代わりに、ループを使用して返されたデータをチャンクで反復処理し、それらを自分でファイルに書き込み、完了したらチェックする必要があるようです。urllib2
urlretrieve
urllib.urlretrieve
のように機能するが、リクエストヘッダーを渡すことができる関数を構築する最良の方法は何でしょうか?
python - Python/urllib が突然正常に動作しなくなりました
学校でクラスの開始を監視するための小さなツールを作成しています。
数分ごとに各部門から現在のクラスの空き状況を取得する Python スクリプトを作成しました。
大学のサイトがこれを返し始めるまで、スクリプトは適切に機能していました。
Uni が私のサーバーをブロックしたに違いありません。それは、他の PC から直接 URL にアクセスしたときに得られる出力だからです。しかし、ユニのサイトで POST を実行する中間フォームを通過すると、そのメッセージが表示されません。
私がリクエストしている URL はhttps://s4.its.unc.edu/SISMisc/SISTalkerServletです
これは私のpythonコードがどのように見えるかです:
私は本当に困惑しています!Python が適切なリクエストを送信していないようです。最初は適切な投稿データを送信していないと思っていましたが、URL をローカル ボックスに変更したところ、Apache が受け取った投稿データは問題ないようでした。
システムが実際に機能しているのを見たい場合は、https://s4.its.unc.edu/SISMisc/browser/student_pass_z.jspに移動し、[ゲストとして入力] ボタンをクリックしてから、[コースの利用可能性] を探します。 . (これで、私がこれを作成する理由がわかりました!)
最も奇妙なことは、これが午前 11 時まで機能していたことです。以前にも同じエラーが発生しましたが、数分間しか続きませんでした。これは、ユニによるサーバーのブロックよりも、どこかで問題があることを示しています。
更新 提案に応じて、より正当なリファラー/ユーザーエージェントで遊んでみました。同じ結果です。これは私が試したものです:
python - PayPal への Python インターフェイス - urllib.urlencode 非 ASCII 文字の失敗
PayPal IPN 機能を実装しようとしています。基本的なプロトコルは次のとおりです。
- クライアントは私のサイトから PayPal のサイトにリダイレクトされ、支払いが完了します。彼は自分のアカウントにログインし、支払いを承認します。
- PayPal がサーバー上のページを呼び出し、詳細を POST として渡します。詳細には、人の名前、住所、支払い情報などが含まれます。
- 上記で渡されたすべてのパラメーターと、値が「_notify-validate」の「cmd」と呼ばれる追加のパラメーターを返す処理ページから、PayPal のサイトの URL を内部的に呼び出す必要があります。
PayPal から送信されたパラメーターを urllib.urlencode しようとすると、次のようになります。
urlencode が ASCII エンコーディングを行うこと、および場合によっては、ユーザーの連絡先情報に非 ASCII 文字が含まれることがあることを理解しています。これは理解できます。私の質問は、urllib2.urlopen(req) (または他の方法) を使用して URL に POST するために非 ASCII 文字をエンコードする方法です。
詳細:
PayPal の元のリクエストのパラメーターを次のように読み取りました (GET はテスト用です)。
処理ページから PayPal にリクエストを送り返すために使用するコードは次のとおりです。
明らかに、問題が発生するのは、誰かの名前、住所、または PayPal 支払いに使用されるその他のフィールドが ASCII の範囲に収まらない場合のみです。
python - Python3urllibのデバッグ出力をオンにする
Python 2では、次のようにしてurllibからデバッグ出力を取得することができました。
ただし、Python 3では、これはに移動されたようです
ただし、http.clientを直接使用するのではなく、urllibを使用しています。httpリクエストがこのようにデバッグ情報を表示するように設定するにはどうすればよいですか?
これが私がこれまでに使用しているものです。デバッグ情報を取得できるようにしたい場合、続行するための最良の方法は何ですか?
python - Python:urllib2.urlopen呼び出しからHTTPヘッダーを取得しますか?
呼び出しが行われ urllib2
たときにページ全体をフェッチしますか?urlopen
ページを取得せずにHTTP応答ヘッダーを読みたいだけです。urllib2
HTTP接続を開き、その後実際のHTMLページを取得するように見えます...それとも、urlopen
呼び出しでページのバッファリングを開始するだけですか?
buffer - Python 2.6でWebからバイナリファイルを保存するための最もメモリ効率の良い方法は?
Python 2.6とurllibを使用してWebからバイナリファイルをダウンロード(および保存)しようとしています。
私が理解しているように、read()、readline()、readlines()は、ファイルのようなオブジェクトを読み取る3つの方法です。バイナリファイルは実際には改行に分割されていないため、read()とreadlines()はファイル全体をメモリに読み込みます。
ランダムなread()バッファサイズを選択することは、このプロセス中のメモリ使用量を制限するための最も効率的な方法ですか?
すなわち
read(1000000)を選択したのは、それが機能し、RAMの使用量を抑えたからです。生のネットワークバッファを使用している場合、転送速度が低すぎるとバッファが枯渇する可能性があるため、ランダムな量を選択するのは悪いことだと思います。しかし、urllibはすでに低レベルのバッファリングを処理しているようです。
それを念頭に置いて、任意の数を選択しても問題ありませんか?もっと良い方法はありますか?
ありがとう。
python - urllib.urlretrieve が成功したかどうかを知る方法は?
urllib.urlretrieve
ファイルがリモート http サーバーに存在しない場合でも、サイレントに戻ります。指定されたファイルに html ページを保存するだけです。例えば:
abc.jpg が google.com サーバーに存在しなくても、生成されabc.jpg
たファイルは有効な jpg ファイルではなく、実際には html ページです。返されたヘッダー (httplib.HTTPMessage インスタンス) を使用して、取得が成功したかどうかを実際に判断できると思いますが、httplib.HTTPMessage
.
誰でもこの問題に関する情報を提供できますか?