網易首頁 > 網易號 > 正文 申請入駐

如何用Claw抓取你已經訂閱的知識星球

0
分享至

因為訂閱的知識星球的信息有點多,而且主要是研報為主,所以用OpenClaw自己每天到上面抓取,看看最新賣方同學們有沒有什么新關注的股票、行業會更加有效。

基于這個需求,我研究了下怎么去用AI抓知識星球內的東西。

主要是知識星球沒有正式的接口,用模擬瀏覽的方式也很耗費流量(關鍵是也有的時候被block),最終找到一個方式,用了一周感覺還可以,做個記錄。

當然不用自己看懂,讓自己的AI看懂就好了。

原理說明

知識星球提供了移動端API(`api.zsxq.com`),可以通過模擬移動端請求獲取數據。核心是:

  1. 認證方式:使用Cookie中的`zsxq access token`進行身份驗證

  2. 簽名機制:每個請求需要攜帶MD5簽名,防止請求被偽造

  3. API端點:主要使用`/v2/groups`(星球列表)和`/v2/groups/{group_id}/topics`(主題列表)

獲取Cookie

方法:瀏覽器開發者工具

  1. 登錄知識星球網頁版:https://wx.zsxq.com

  2. 打開瀏覽器開發者工具(F12)

  3. 切換到「Network」標簽

  4. 刷新頁面,找到任意請求

  5. 在請求頭中找到`Cookie`字段,復制完整內容

Cookie關鍵字段

Cookie中最重要的字段是:

  • `zsxq access token`:身份令牌,格式如`XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX_XXXXXXXXXXXXXXXX`

  • ` c WBKFRo`:設備標識(可選)

Cookie有效期

通常1-3個月有效

過期后需要重新獲取

建議定期檢查,避免數據抓取失敗

簽名算法

知識星球的API簽名算法如下:

import hashlib import time from urllib.parse import urlencode def generate_signature(path,params,secret="zsxqapi2020"): # 1. 構造公共參數 common_params={ "app_version":"3.11.0", "platform":"ios", "timestamp":str(int(time.time()*1000)) } # 2. 合并所有參數 all_params={**common_params,**params} # 3. 按參數名排序并拼接 sorted_params=sorted(all_params.items(),key=lambda x: x[0]) params_str=urlencode(sorted_params) # 4. 構造簽名字符串:path & params & secret sign_str=f"{path}&{params_str}&{secret}" # 5. MD5加密 signature=hashlib.md5(sign_str.encode()).hexdigest() return signature, common_params["timestamp"]

簽名字符串示例:

/v2/groups&app_version=3.11.0&count=20&platform=ios&timestamp=1713523200000&zsxqapi2020

核心API接口

1. 獲取星球列表

GET https://api.zsxq.com/v2/groups?count=50

請求頭:

Cookie: {你的Cookie} X-Signature: {簽名} X-Timestamp: {時間戳} User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X)...

返回示例:

{ "succeeded":true, "resp_data": { "groups": [ { "group_id":5124251821488, "name":"示例星球名稱", "type":"paid" } ] } }

2. 獲取星球主題

GET https://api.zsxq.com/v2/groups/{group_id}/topics?count=20&scope=all

參數說明:

  • `group_id`:星球ID

  • `count`:返回數量(默認20,最大50)

  • `scope`:范圍(`all`=全部,`digg`=精華)

3. 獲取主題詳情

GET https://api.zsxq.com/v2/topics/{topic_id}

完整代碼示例

import requests import hashlib import time from urllib.parse import urlencode class ZsxqApiSpider: def __init__(self,cookie): self.base_url="https://api.zsxq.com" self.secret="zsxqapi2020" self.cookie=cookie self.headers={ "User-Agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15", "Accept":"application/json", "Cookie":self.cookie, "Origin":"https://wx.zsxq.com", "Referer":"https://wx.zsxq.com/" } def generate_signature(self,path,params=None): common_params={ "app_version":"3.11.0", "platform":"ios", "timestamp":str(int(time.time()*1000)) } all_params={**common_params,**(paramsor{})} sorted_params=sorted(all_params.items(),key=lambda x: x[0]) params_str=urlencode(sorted_params) sign_str=f"{path}&{params_str}&{self.secret}" signature=hashlib.md5(sign_str.encode()).hexdigest() return signature, common_params["timestamp"] def request(self,path,params=None): signature, timestamp=self.generate_signature(path, params) headers=self.headers.copy() headers["X-Signature"]=signature headers["X-Timestamp"]=timestamp url=f"{self.base_url}{path}" response=requests.get(url,headers=headers,params=params,timeout=15) return response.json() def get_groups(self): """獲取我加入的星球列表""" data=self.request("/v2/groups", {"count":50}) if data.get("succeeded"): return data["resp_data"]["groups"] return [] def get_topics(self,group_id,count=20): """獲取星球的最新主題""" data=self.request(f"/v2/groups/{group_id}/topics", {"count": count,"scope":"all"}) if data.get("succeeded"): return data["resp_data"]["topics"] return [] # 使用示例 if __name__=="__main__": # 替換為你的Cookie COOKIE="zsxq_access_token=YOUR_TOKEN_HERE; ..." spider=ZsxqApiSpider(COOKIE) # 獲取星球列表 groups=spider.get_groups() for g in groups: print(f"星球:{g['name']}(ID:{g['group_id']})") # 獲取第一個星球的最新主題 if groups: topics=spider.get_topics(groups[0]["group_id"]) for t in topics: print(f"主題:{t.get('title','無標題')}")

定時任務配置

1. 創建日程任務

使用`calendar_create`工具創建每日定時任務:

# 在主對話中調用 calendar_create( summary="知識星球每日簡報", description="通過知識星球API獲取最新內容,分析持倉相關信息。執行命令:python3 ~/zsxq_spider/final_crawler.py", dtstart="20260419080000",# 每天早上8點執行 rrule={"freq":"DAILY","interval":1}, time_range={ "earliest_schedule_time":"20260419070000", "latest_schedule_time":"20260419090000" } )

2. 任務執行流程

每日觸發 → 執行爬蟲腳本 → 解析數據 → 生成簡報 → 推送到主對話

常見問題

Q1: Cookie過期怎么辦?

現象:API返回`{"succeeded": false, "code": 1001}`

解決:

  1. 重新登錄網頁版

  2. 獲取新的Cookie

  3. 更新腳本中的COOKIE變量

Q2: 請求頻率限制

現象:API返回`{"code": 1059}`

解決:

  • 添加請求間隔:`time.sleep(1)`

  • 減少單次請求數量

  • 實現重試機制

Q3: 內容提取不完整

原因:主題內容存儲在不同字段中

解決:按優先級提取

def extract_content(topic): # 1. talk.text(短文/評論) if topic.get('talk', {}).get('text'): return topic['talk']['text'] # 2. article.article_content(長文) if topic.get('article', {}).get('article_content'): return topic['article']['article_content'] # 3. files(附件) if topic.get('files'): return f"[附件]{topic['files'][0].get('name')}" return ""

數據存儲建議

目錄結構

/app/data/所有對話/主對話/zsxq_data/ ├── daily_20260419.json          # 每日原始數據 ├── files/                        # 下載的文件 │   ├── 研報_20260419.pdf │   └── 音頻_20260419.mp3 └── brief_20260419.md            # 每日簡報

數據格式

{ "示例星球名稱": [ { "topic_id":88442514812884, "title":"示例主題標題", "content":"示例內容...", "create_time":"2026-04-19T08:30:00.000+0800" } ] }

安全提示

  1. Cookie安全:不要將包含Cookie的代碼上傳到公開倉庫

  2. 請求頻率:避免高頻請求,尊重平臺規則

  3. 數據使用:獲取的數據僅供個人學習研究使用

本教程僅供技術學習交流,請遵守知識星球用戶協議。


作者:坦桑尼亞老云 | 編輯:栗加

每個視角都是拼湊世界真相的碎片,聽真誠的行業觀察者講述獨特的故事。

我們有深耕行業的資深顧問,連續跨界探索的未來創業者,專注細節的產品匠人,和許多志同道合的你們,如果你有想要分享的故事或者感想,可以留言或者郵件聯系(AiysJY@outlook.com)。

,也歡迎點分享給需要的朋友們,記得點一下在看和星標,期待共同在這個行業的宏大敘事中,留下一句詩。:)

聲明:包含AI生成內容

特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關推薦
熱點推薦
百度發全員信通知職級體系大調整

百度發全員信通知職級體系大調整

財聯社
2026-04-28 10:53:07
汪涵妻子被爆近況沖上熱搜:什么樣的“愛”會讓人窒息?

汪涵妻子被爆近況沖上熱搜:什么樣的“愛”會讓人窒息?

桌子的生活觀
2026-04-28 12:19:53
男子曝入職全球頂尖科技公司時突然被降薪20萬,拒offer后被嘲諷:你的愛國情懷不值20萬嗎

男子曝入職全球頂尖科技公司時突然被降薪20萬,拒offer后被嘲諷:你的愛國情懷不值20萬嗎

爆角追蹤
2026-04-27 14:54:06
和劉濤分手后,他常年定居上海,如今身價過億,年過60卻依舊單身

和劉濤分手后,他常年定居上海,如今身價過億,年過60卻依舊單身

秋姐居
2026-04-27 19:37:26
真的沒油了?24 歲在勇士捧起總冠軍,34 歲征戰季后賽,場均2 分

真的沒油了?24 歲在勇士捧起總冠軍,34 歲征戰季后賽,場均2 分

球毛鬼胎
2026-04-28 16:46:51
Manus被取消交易:創業者不能既要、又要、也要、還要

Manus被取消交易:創業者不能既要、又要、也要、還要

小星球探索
2026-04-28 12:08:06
千萬粉絲網紅白冰偷稅超900萬元被查,用公司購買個人使用的奢侈品,白冰多平臺賬號仍可正常關注

千萬粉絲網紅白冰偷稅超900萬元被查,用公司購買個人使用的奢侈品,白冰多平臺賬號仍可正常關注

極目新聞
2026-04-28 11:20:23
揚州市農業農村局原黨組副書記、副局長、二級巡視員周學金被查

揚州市農業農村局原黨組副書記、副局長、二級巡視員周學金被查

揚子晚報
2026-04-28 15:34:50
美媒:以色列“三大支柱”難承戰爭之重

美媒:以色列“三大支柱”難承戰爭之重

參考消息
2026-04-28 15:20:11
12人落馬5輪徹查!張軍失聯第18天,64歲蔡振華成體育界正面教材

12人落馬5輪徹查!張軍失聯第18天,64歲蔡振華成體育界正面教材

不寫散文詩
2026-04-28 14:19:14
騙了75萬元會費就跑路,上海首例“職業閉店人”獲刑

騙了75萬元會費就跑路,上海首例“職業閉店人”獲刑

大風新聞
2026-04-28 15:34:07
被索賠266萬 13歲嗨球學員改打羽毛球 孫繼海被狂批:惡霸+SX協會

被索賠266萬 13歲嗨球學員改打羽毛球 孫繼海被狂批:惡霸+SX協會

風過鄉
2026-04-28 12:16:36
中國會不會出現第二個毛澤東?答案一不會,但會出現新的杰出領袖

中國會不會出現第二個毛澤東?答案一不會,但會出現新的杰出領袖

南宗歷史
2026-04-27 23:20:25
扎哈羅娃拳打澤連斯基腳踢歐盟,烏克蘭軍力躍居全球排行榜第12位

扎哈羅娃拳打澤連斯基腳踢歐盟,烏克蘭軍力躍居全球排行榜第12位

史政先鋒
2026-04-28 12:47:48
毛主席看不清老布什的臉,把他拉到眼前說:這個年輕人能當總統

毛主席看不清老布什的臉,把他拉到眼前說:這個年輕人能當總統

大江
2026-04-28 11:02:26
新規落地!5月1日起,飯局、轉賬或被全程監管,別大意!

新規落地!5月1日起,飯局、轉賬或被全程監管,別大意!

小談食刻美食
2026-04-28 07:30:36
“巴鐵”總統敏感時刻再訪華,釋放哪些信號?

“巴鐵”總統敏感時刻再訪華,釋放哪些信號?

補壹刀
2026-04-28 09:47:16
43歲蔡卓妍官宣結婚,婚戒照好幸福,老公比她小10歲是健身教練

43歲蔡卓妍官宣結婚,婚戒照好幸福,老公比她小10歲是健身教練

扒蝦侃娛
2026-04-28 12:34:53
老人從81歲到91歲還清2077萬的債,96歲“誠信奶奶”陳金英回應:不過是守住了做人的底線

老人從81歲到91歲還清2077萬的債,96歲“誠信奶奶”陳金英回應:不過是守住了做人的底線

九州新聞
2026-04-28 12:44:14
泰國工廠突發沖突!中泰工人互相群毆,視頻曝光現場一片混亂

泰國工廠突發沖突!中泰工人互相群毆,視頻曝光現場一片混亂

暹羅飛鳥
2026-04-28 08:14:15
2026-04-28 16:59:00
愛因斯
愛因斯
每個視角都是拼湊世界真相的碎片,聽真誠的行業觀察者講述獨特的故事。
95文章數 1關注度
往期回顧 全部

科技要聞

10億周活目標落空!傳OpenAI爆發內部分歧

頭條要聞

媒體:伊朗向美方傳達三階段談判方案 這次底氣充足

頭條要聞

媒體:伊朗向美方傳達三階段談判方案 這次底氣充足

體育要聞

季后賽最新局勢:雷霆4-0晉級首隊 4隊3-1

娛樂要聞

蔡卓妍官宣結婚,老公比她小10歲

財經要聞

政治局會議:加強算力網等規劃建設

汽車要聞

拒絕瘋狂套娃!現代艾尼氪金星長在未來審美點上

態度原創

親子
時尚
健康
藝術
手機

親子要聞

寶寶皮膚薄,曬傷一次誤終身,選防曬守住3道底線

解鎖劉浩存的「紅運」密碼 | 高清鏡頭后的底氣

干細胞治療燒燙傷三大優勢!

藝術要聞

靜·觀--第二屆全國靜物油畫作品展 作品選刊

手機要聞

萬級續航+IP68防水! vivo Y600 Pro手機全面評測:藍廠新一代戶外機皇實至名歸

無障礙瀏覽 進入關懷版