fix: switch to Sina backend, add Referer header for HK access
This commit is contained in:
@@ -23,7 +23,7 @@ class Settings(BaseSettings):
|
|||||||
# AKShare
|
# AKShare
|
||||||
akshare_max_retries: int = 3
|
akshare_max_retries: int = 3
|
||||||
akshare_retry_delay: float = 1.0
|
akshare_retry_delay: float = 1.0
|
||||||
akshare_backend: str = "auto" # auto, em (East Money), sina
|
akshare_backend: str = "sina" # auto, em (East Money), sina
|
||||||
|
|
||||||
# Realtime
|
# Realtime
|
||||||
realtime_poll_interval: int = 5
|
realtime_poll_interval: int = 5
|
||||||
|
|||||||
@@ -43,6 +43,24 @@ def _getproxies_direct():
|
|||||||
urllib.request.getproxies = _getproxies_direct
|
urllib.request.getproxies = _getproxies_direct
|
||||||
logger.debug("Proxy disabled: env vars cleared + macOS SystemConfiguration bypassed")
|
logger.debug("Proxy disabled: env vars cleared + macOS SystemConfiguration bypassed")
|
||||||
|
|
||||||
|
# === Patch requests to add Referer header for Sina (required from HK) ===
|
||||||
|
import requests as _requests
|
||||||
|
_original_session_request = _requests.Session.request
|
||||||
|
|
||||||
|
|
||||||
|
def _patched_session_request(self, method, url, **kwargs):
|
||||||
|
"""Inject Referer header for Sina finance domains so they don't 403."""
|
||||||
|
if isinstance(url, str) and "sina.com.cn" in url:
|
||||||
|
headers = kwargs.get("headers", {})
|
||||||
|
if isinstance(headers, dict) and "Referer" not in headers:
|
||||||
|
headers = dict(headers)
|
||||||
|
headers["Referer"] = "https://finance.sina.com.cn"
|
||||||
|
kwargs["headers"] = headers
|
||||||
|
return _original_session_request(self, method, url, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
_requests.Session.request = _patched_session_request
|
||||||
|
|
||||||
|
|
||||||
def _to_akshare_date(d: date) -> str:
|
def _to_akshare_date(d: date) -> str:
|
||||||
return d.strftime("%Y%m%d")
|
return d.strftime("%Y%m%d")
|
||||||
|
|||||||
Reference in New Issue
Block a user