fix: switch to Sina backend, add Referer header for HK access

This commit is contained in:
jackyu66git
2026-07-03 12:50:39 +08:00
parent cd602bf3ac
commit ac5d538a04
2 changed files with 19 additions and 1 deletions
+1 -1
View File
@@ -23,7 +23,7 @@ class Settings(BaseSettings):
# AKShare
akshare_max_retries: int = 3
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_poll_interval: int = 5
+18
View File
@@ -43,6 +43,24 @@ def _getproxies_direct():
urllib.request.getproxies = _getproxies_direct
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:
return d.strftime("%Y%m%d")