で正しくセットアップのリダイレクトには、次のコードスニペットを考えてみましょう:どのようにいくつかのコーナーケースのためのPythonの要求
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import sys
import requests
from requests import exceptions
try:
url=sys.argv[1]
except IndexError:
print('No URL provided.')
sys.exit(1)
print('\n--- {}\n'.format(url))
try:
s = requests.Session()
r = s.get(url)
except exceptions.TooManyRedirects as t:
print('ERROR: {}'.format(t))
r = s.get(url, allow_redirects=False)
print('-----------------------------')
print(r.status_code)
print(r.headers)
コードは、入力としてURLを取り、その上にGETリクエストを実行しようとします。 セッションオブジェクトを使用して、複数のリクエストなどでCookieを管理します。
私の問題は、無限のリダイレクトループで実行され、30回の試行後に破損するいくつかのURL(主にTumblr)です。
例:http://ansgar-skoda.tumblr.com/post/96703389502
私は、ブラウザまたは
curl -v -L http://ansgar-skoda.tumblr.com/post/96703389502
リダイレクト作品で、このページを要求し、私は正しいWebページを受け取ります。 これは正しく設定していないようです。 Requests docuを調べると、allow_redirectsオプションがデフォルトでTrueであることがわかりました。この場合、ユーザーエージェントは結果に影響を与えていないようです。
ここに進む方法についてのヒントを教えてください。 ありがとうございます。今日のよう
のバグです - の両方で同じ要求パッケージ(2.13.0)。 – mhawke
非常によく目撃された。これをRequestsのIssue Trackerに伝えます。 –
https://github.com/kennethreitz/requests/issues/3949 –