diff --git a/config/base_config.py b/config/base_config.py index 17f908c..a87413e 100644 --- a/config/base_config.py +++ b/config/base_config.py @@ -19,6 +19,11 @@ # Basic configuration PLATFORM = "xhs" # Platform, xhs | dy | ks | bili | wb | tieba | zhihu + +# 是否使用海外版小红书 (rednote.com) +# 开启后 API 走 webapi.rednote.com,cookie 域使用 .rednote.com +XHS_INTERNATIONAL = False + KEYWORDS = "编程副业,编程兼职" # Keyword search configuration, separated by English commas LOGIN_TYPE = "qrcode" # qrcode or phone or cookie COOKIES = "" diff --git a/media_platform/xhs/client.py b/media_platform/xhs/client.py index a87a45f..0630e28 100644 --- a/media_platform/xhs/client.py +++ b/media_platform/xhs/client.py @@ -57,8 +57,12 @@ class XiaoHongShuClient(AbstractApiClient, ProxyRefreshMixin): self.proxy = proxy self.timeout = timeout self.headers = headers - self._host = "https://edith.xiaohongshu.com" - self._domain = "https://www.xiaohongshu.com" + if config.XHS_INTERNATIONAL: + self._host = "https://webapi.rednote.com" + self._domain = "https://www.rednote.com" + else: + self._host = "https://edith.xiaohongshu.com" + self._domain = "https://www.xiaohongshu.com" self.IP_ERROR_STR = "Network connection error, please check network settings or restart" self.IP_ERROR_CODE = 300012 self.NOTE_NOT_FOUND_CODE = -510000 @@ -681,7 +685,7 @@ class XiaoHongShuClient(AbstractApiClient, ProxyRefreshMixin): """ url = ( - "https://www.xiaohongshu.com/explore/" + f"{self._domain}/explore/" + note_id + f"?xsec_token={xsec_token}&xsec_source={xsec_source}" ) diff --git a/media_platform/xhs/core.py b/media_platform/xhs/core.py index f797e79..d536521 100644 --- a/media_platform/xhs/core.py +++ b/media_platform/xhs/core.py @@ -55,7 +55,7 @@ class XiaoHongShuCrawler(AbstractCrawler): cdp_manager: Optional[CDPBrowserManager] def __init__(self) -> None: - self.index_url = "https://www.xiaohongshu.com" + self.index_url = "https://www.rednote.com" if config.XHS_INTERNATIONAL else "https://www.xiaohongshu.com" # self.user_agent = utils.get_user_agent() self.user_agent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36" self.cdp_manager = None @@ -364,10 +364,10 @@ class XiaoHongShuCrawler(AbstractCrawler): "accept-language": "zh-CN,zh;q=0.9", "cache-control": "no-cache", "content-type": "application/json;charset=UTF-8", - "origin": "https://www.xiaohongshu.com", + "origin": self.index_url, "pragma": "no-cache", "priority": "u=1, i", - "referer": "https://www.xiaohongshu.com/", + "referer": f"{self.index_url}/", "sec-ch-ua": '"Chromium";v="136", "Google Chrome";v="136", "Not.A/Brand";v="99"', "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": '"Windows"', diff --git a/media_platform/xhs/login.py b/media_platform/xhs/login.py index fe99661..e382954 100644 --- a/media_platform/xhs/login.py +++ b/media_platform/xhs/login.py @@ -219,6 +219,6 @@ class XiaoHongShuLogin(AbstractLogin): await self.browser_context.add_cookies([{ 'name': key, 'value': value, - 'domain': ".xiaohongshu.com", + 'domain': ".rednote.com" if config.XHS_INTERNATIONAL else ".xiaohongshu.com", 'path': "/" }])