记录日志做好异常处理
import logging
from requests.adapters import HTTPAdapter
from urllib3.util import Retry
import requests
timeout = 10
max_retries = 5
logging.basicConfig(filename='log_option_influxdb.log', level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s')
url = f'xxxxxxxxxxxxxxxxxxxxxxx'
params = {}
def fetch_with_retry(url, params):
try:
session = requests.Session()
retries = Retry(total=max_retries, backoff_factor=1, status_forcelist=[429, 500, 502, 503, 504])
adapter = HTTPAdapter(max_retries=retries)
session.mount('http://', adapter)
session.mount('https://', adapter)
session.proxies = {"http": "http://127.0.0.1:xxxxx", "https": "http://127.0.0.1:xxxxx"} #代理修改
response = session.get(url, params=params, timeout=timeout)
# print(response.text)
if response.status_code == 200:
return response.json()
else:
logging.warning(f"Failed to fetch data from {url}. Status Code: {response.status_code}")
return None
except requests.RequestException as e:
logging.error(f"Error in fetch: {e}")
return None