2
import requests

for i in range(3):
    g = requests.get('http://some-url/')
    print "request done"

開始するリクエストごとに、「それ」は別のリクエストを実行する前に、レスポンスが到着する(レスポンスのロードが完全に終了する)のを待ちますか?

これらのリクエストを完了するのにかかる時間をブラウザからのリクエストと比較しましたが、読み込み時間はRequestsの方がかなり高速です。それが私のブラウザがjavascriptを実行している、画像をロードしているなどの理由だけなのか、それともリクエストの仕組みが原因なのかはわかりません。

4

2 に答える 2

4

はい、requests.get同期操作です。ページの内容が str として python に取り込まれるのを待ちます。表示される時間差は、確かに javascipt の実行とブラウザでの追加ファイルのフェッチによるものです。

Firefox Web コンソールでは、ページ コンテンツのダウンロードにかかる時間を確認できます。この時間は、リクエストで表示される時間とほぼ同じである必要があります。

于 2013-02-02T13:20:32.977 に答える
4

はい、各リクエストは同期的に行われるため、次のリクエストは前のリクエストが終了した後にのみ開始されます。リリースノートの引用:

0.13.0 (2012-05-29)

grequestsを優先して Requests.async を削除

于 2013-02-02T13:20:56.380 に答える