
Python リクエスト ライブラリによる非同期リクエストの処理
チャレンジ:
リクエスト ライブラリのドキュメントには、非同期の実行例が記載されていますリクエストには、ページのコンテンツを取得するためのガイダンスがありません。次のコードはコンテンツへのアクセスに失敗します:
1 2 | out = async.map(rs)
print out[0].content
|
ログイン後にコピー
解決策:
async.map を使用して複数の非同期タスクを実行するには、次の手順に従います:
-
タスク関数の定義: 各タスクを処理する関数を作成しますまたは応答オブジェクト。
-
イベント フックの追加: この関数をリクエストのイベント フックとして追加して、応答の処理方法を指定します。
-
マップリクエスト: 実行したいすべてのリクエストまたはアクションのリストを指定して async.map を呼び出します。
例:
URL のリストと応答 URL を出力する簡単なタスクを考えてみましょう:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | import async
urls = [
'http://python-requests.org' ,
'http://httpbin.org' ,
'http://python-guide.org' ,
'http://kennethreitz.com'
]
def do_something(response):
print (response.url)
async_list = []
for u in urls:
action_item = async.get(u, hooks={ 'response' : do_something})
async_list.append(action_item)
async.map(async_list)
|
ログイン後にコピー
以上がPython のリクエスト ライブラリで非同期リクエストからページ コンテンツを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。