問題タブ [urllib2]

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.

0 投票する
2 に答える
6678 参照

python - Python: 大きなファイルをローカル パスにダウンロードし、カスタム http ヘッダーを設定する

http URL からローカル ファイルにファイルをダウンロードしようとしています。ファイルは十分に大きいので、ファイル全体を単一の巨大な文字列としてではなく、ダウンロードしてチャンクに保存したいと思いread()ます。write()

のインターフェースは、urllib.urlretrieve本質的に私が欲しいものです。ただし、経由でダウンロードするときにリクエストヘッダーを設定する方法がわかり urllib.urlretrieveません。これは、私が行う必要があることです。

を使用すると、そのオブジェクトurllib2を介してリクエスト ヘッダーを設定できます。ただし、ファイルをディスク上のパスに直接ダウンロードするためRequestの API は見当たりません。代わりに、ループを使用して返されたデータをチャンクで反復処理し、それらを自分でファイルに書き込み、完了したらチェックする必要があるようです。urllib2urlretrieve

urllib.urlretrieveのように機能するが、リクエストヘッダーを渡すことができる関数を構築する最良の方法は何でしょうか?

0 投票する
4 に答える
7223 参照

python - HTTP リクエストの TTFB (最初のバイトまでの時間) を取得する

URL をロードして応答時間を取得する Python スクリプトを次に示します。

私のタイマーは要求/応答全体 (read() を含む) にラップされているため、TTLB (最後のバイトまでの時間) が得られます。

TTFB (最初のバイトまでの時間) も取得したいのですが、タイミングを開始/停止する場所がわかりません。urllib2 は TTFB タイマーを追加するのに十分な粒度ですか? もしそうなら、彼らはどこに行きますか?

0 投票する
3 に答える
19752 参照

python - HTTP からの Python 文字列のエスケープ解除

HTTP ヘッダーから文字列を取得しましたが、エスケープされています。エスケープを解除するには、どの関数を使用できますか?

urllib.unquote() は行くべき道でしょうか?

0 投票する
3 に答える
13973 参照

python - PayPal への Python インターフェイス - urllib.urlencode 非 ASCII 文字の失敗

PayPal IPN 機能を実装しようとしています。基本的なプロトコルは次のとおりです。

  1. クライアントは私のサイトから PayPal のサイトにリダイレクトされ、支払いが完了します。彼は自分のアカウントにログインし、支払いを承認します。
  2. PayPal がサーバー上のページを呼び出し、詳細を POST として渡します。詳細には、人の名前、住所、支払い情報などが含まれます。
  3. 上記で渡されたすべてのパラメーターと、値が「_notify-validate」の「cmd」と呼ばれる追加のパラメーターを返す処理ページから、PayPal のサイトの URL を内部的に呼び出す必要があります。

PayPal から送信されたパラメーターを urllib.urlencode しようとすると、次のようになります。

urlencode が ASCII エンコーディングを行うこと、および場合によっては、ユーザーの連絡先情報に非 ASCII 文字が含まれることがあることを理解しています。これは理解できます。私の質問は、urllib2.urlopen(req) (または他の方法) を使用して URL に POST するために非 ASCII 文字をエンコードする方法です。

詳細:

PayPal の元のリクエストのパラメーターを次のように読み取りました (GET はテスト用です)。

処理ページから PayPal にリクエストを送り返すために使用するコードは次のとおりです。

明らかに、問題が発生するのは、誰かの名前、住所、または PayPal 支払いに使用されるその他のフィールドが ASCII の範囲に収まらない場合のみです。

0 投票する
9 に答える
150512 参照

python - urllib2.urlopen のユーザー エージェントを変更する

urllib2.urlopen のデフォルト以外のユーザー エージェントを使用して Web ページをダウンロードするにはどうすればよいですか?

0 投票する
2 に答える
2716 参照

python - 接続が中断されたときにurllib2によって作成されたストリームの読み取りが回復しない

接続が中断された場合に備えて、Python アプリケーションの 1 つをもう少し堅牢にしようとしているときに、urllib2 によって作成された http ストリームの読み取り関数を呼び出すと、スクリプトが永久にブロックされる可能性があることがわかりました。

読み取り関数がタイムアウトし、最終的に例外が発生すると思いましたが、読み取り関数の呼び出し中に接続が中断された場合はそうではありません。

問題を引き起こすコードは次のとおりです。

(スクリプトを試してみると、スクリプトが回復しない状態になる前に、おそらく数回接続を中断する必要があります)

Winpdb 経由でスクリプトを見て、スクリプトが回復しない状態のスクリーンショットを作成しました (ネットワークが再び使用可能になった場合でも)。

Winpdb http://img10.imageshack.us/img10/6716/urllib2.jpg

ネットワーク接続が中断された場合でも信頼できる動作を継続する Python スクリプトを作成する方法はありますか? (余分なスレッド内でこれを行うことは避けたいと思います。)

0 投票する
2 に答える
9852 参照

python - Python で Web ページとそのすべてのリソース ファイルをダウンロードする

Python を使用して、ページとそれに関連するすべてのリソース (画像、スタイル シート、スクリプト ファイルなど) をダウンロードできるようにしたいと考えています。私は urllib2 に (ある程度) 精通しており、個々の URL をダウンロードする方法を知っていますが、BeautifulSoup + urllib2 でハッキングを開始する前に、"wget --page-requisites http ://www.google.com ".

具体的には、すべてのリソースを含む Web ページ全体をダウンロードするのにかかる時間に関する統計情報を収集することに関心があります。

ありがとうマーク

0 投票する
1 に答える
3136 参照

python - postメソッドとpythonを使用してファイルをダウンロードする

Webサイトからダウンロードするtarファイルを取得するのに少し助けが必要です。Webサイトは、必要なファイルを選択して[送信]をクリックするフォームとして設定され、ダウンロードウィンドウが開いて場所を選択できます。

私はコードで同じことをしようとしています(したがって、各ファイルを手動で選択する必要はありません)。これまでのところ、応答を返すためにpython 2.5.2を取得しましたが、その中にあり、socket._fileobjectそれをコンピューター上のファイルに変換する方法がわかりません。

以下は、Pythonシェルの出力と私が行った手順です

0 投票する
2 に答える
22270 参照

python - Python と urllib2 を使用した Windows 認証

Windows のユーザー名とパスワードが必要な Web ページからデータを取得したいと考えています。

これまでのところ、私は持っています:

これは urllib2 でサポートされていますか? Python NTLMを見つけましたが、ユーザー名とパスワードを入力する必要があります。何らかの方法で認証情報を取得する方法はありますか (たとえば、network.automatic-ntlm-auth.trusted-uris設定を変更した場合は IE や Firefox のように)。

msanderの回答後に編集

だから私は今これを持っています:

これはかなりうまくリッピングされていますsocket_server.pyここを参照)。しかし、エラー 400 - 不正な要求が表示されます。他に何かアイデアはありますか?

ありがとう、

ドム