私は現在、jsonを使用する外部APIと対話するためにpython要求ライブラリを使用しています。 各エンドポイントは(APIクラスの)メソッドを介して動作し、collect_dataメソッドを使用します。要求ライブラリとhttpエラー
しかし、httpエラーが発生するたびに(そして理想的にはこれをログに出力する)スクレーパーを実行し続けたいと思います。
は()
それは何らかの方法以外でのI /トライを使用する必要があるように思えるが、最高の、ここでこれを行う方法がわからないなど、現在私がhttp.raise_for_statusを使用する場合、それだけで壊れるこれを行うための最善の方法は何ですか?
def scrape_full_address(self, house_no, postcode):
address_path = '/api/addresses'
address_url = self.api_source + address_path
payload = {
'houseNo': house_no,
'postcode': postcode,
}
return self.collect_data(url=address_url, method='get', payload=payload)
def collect_data(self, url, method, payload=None):
if method == 'get':
data = None
params = payload
elif method == 'post':
params = None
data = payload
response = getattr(requests, method)(url=url, params=params, json=data, headers=self.headers)
if response.status_code == 200:
return response.json()
else:
return response.raise_for_status()
は、あなたが得る正確なエラー出力を提供することができますか? –
私はHTTPerrorを取得します: 'raise HTTPError(http_error_msg、response = self) requests.exceptions.HTTPError:500サーバーエラー:URLの内部サーバーエラー:..... ' – Yunti
以下のKerry Hatcherの答えを見てください。 –