df.at[0, “html_content”] = requests.get(i.find_element(By.TAG_NAME,”a”).get_attribute(“href”)).text ここがエラー部分なんだけど、ここだけ3回のリトライとかできる?引き数だけ入れてとか

はい、requests.get()をリトライするための方法があります。以下は、retry_decoratorデコレータを使用してrequests.get()をラップしてリトライ機構を実装する例です。

python
import requests from requests.adapters import HTTPAdapter from requests.packages.urllib3.util.retry import Retry import time def retry_decorator(func): def wrapper(*args, **kwargs): retries = 3 # 最大リトライ回数 for attempt in range(retries): try: response = func(*args, **kwargs) response.raise_for_status() return response except requests.exceptions.RequestException as e: print(f"Request failed: {e}") if attempt < retries - 1: print(f"Retrying ({attempt + 1}/{retries})...") time.sleep(1) # リトライ間隔(秒) else: print("Maximum retries reached. Aborting.") return None return wrapper # retry_decoratorを適用したrequests.get()のラッパー関数 @retry_decorator def get_with_retry(*args, **kwargs): return requests.get(*args, **kwargs) # 使用例 def fetch_html_content(url): response = get_with_retry(url) if response is not None: return response.text else: return None # 使用例 url = "http://example.com" html_content = fetch_html_content(url) if html_content is not None: print(html_content) else: print("リトライ後もリクエストが失敗しました。")

このコードでは、retry_decoratorデコレータを定義し、requests.get()をラップしてリトライ機構を実装しています。retry_decoratorデコレータがget_with_retry関数に適用され、この関数がrequests.get()を呼び出すときにリトライが試行されます。リトライは最大3回試行され、各リトライの間に1秒の待機時間があります。

未分類

Posted by ぼっち