mirror of
https://github.com/NanmiCoder/MediaCrawler.git
synced 2026-05-26 20:47:28 +08:00
feat: 添加海外版小红书(rednote.com)支持
This commit is contained in:
@@ -19,6 +19,11 @@
|
|||||||
|
|
||||||
# Basic configuration
|
# Basic configuration
|
||||||
PLATFORM = "xhs" # Platform, xhs | dy | ks | bili | wb | tieba | zhihu
|
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
|
KEYWORDS = "编程副业,编程兼职" # Keyword search configuration, separated by English commas
|
||||||
LOGIN_TYPE = "qrcode" # qrcode or phone or cookie
|
LOGIN_TYPE = "qrcode" # qrcode or phone or cookie
|
||||||
COOKIES = ""
|
COOKIES = ""
|
||||||
|
|||||||
@@ -57,8 +57,12 @@ class XiaoHongShuClient(AbstractApiClient, ProxyRefreshMixin):
|
|||||||
self.proxy = proxy
|
self.proxy = proxy
|
||||||
self.timeout = timeout
|
self.timeout = timeout
|
||||||
self.headers = headers
|
self.headers = headers
|
||||||
self._host = "https://edith.xiaohongshu.com"
|
if config.XHS_INTERNATIONAL:
|
||||||
self._domain = "https://www.xiaohongshu.com"
|
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_STR = "Network connection error, please check network settings or restart"
|
||||||
self.IP_ERROR_CODE = 300012
|
self.IP_ERROR_CODE = 300012
|
||||||
self.NOTE_NOT_FOUND_CODE = -510000
|
self.NOTE_NOT_FOUND_CODE = -510000
|
||||||
@@ -681,7 +685,7 @@ class XiaoHongShuClient(AbstractApiClient, ProxyRefreshMixin):
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
url = (
|
url = (
|
||||||
"https://www.xiaohongshu.com/explore/"
|
f"{self._domain}/explore/"
|
||||||
+ note_id
|
+ note_id
|
||||||
+ f"?xsec_token={xsec_token}&xsec_source={xsec_source}"
|
+ f"?xsec_token={xsec_token}&xsec_source={xsec_source}"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ class XiaoHongShuCrawler(AbstractCrawler):
|
|||||||
cdp_manager: Optional[CDPBrowserManager]
|
cdp_manager: Optional[CDPBrowserManager]
|
||||||
|
|
||||||
def __init__(self) -> None:
|
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 = 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.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
|
self.cdp_manager = None
|
||||||
@@ -364,10 +364,10 @@ class XiaoHongShuCrawler(AbstractCrawler):
|
|||||||
"accept-language": "zh-CN,zh;q=0.9",
|
"accept-language": "zh-CN,zh;q=0.9",
|
||||||
"cache-control": "no-cache",
|
"cache-control": "no-cache",
|
||||||
"content-type": "application/json;charset=UTF-8",
|
"content-type": "application/json;charset=UTF-8",
|
||||||
"origin": "https://www.xiaohongshu.com",
|
"origin": self.index_url,
|
||||||
"pragma": "no-cache",
|
"pragma": "no-cache",
|
||||||
"priority": "u=1, i",
|
"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": '"Chromium";v="136", "Google Chrome";v="136", "Not.A/Brand";v="99"',
|
||||||
"sec-ch-ua-mobile": "?0",
|
"sec-ch-ua-mobile": "?0",
|
||||||
"sec-ch-ua-platform": '"Windows"',
|
"sec-ch-ua-platform": '"Windows"',
|
||||||
|
|||||||
@@ -219,6 +219,6 @@ class XiaoHongShuLogin(AbstractLogin):
|
|||||||
await self.browser_context.add_cookies([{
|
await self.browser_context.add_cookies([{
|
||||||
'name': key,
|
'name': key,
|
||||||
'value': value,
|
'value': value,
|
||||||
'domain': ".xiaohongshu.com",
|
'domain': ".rednote.com" if config.XHS_INTERNATIONAL else ".xiaohongshu.com",
|
||||||
'path': "/"
|
'path': "/"
|
||||||
}])
|
}])
|
||||||
|
|||||||
Reference in New Issue
Block a user