ZhihuVAPI 是一個能夠讓你以一種優雅的形式調用知乎數據的 Python 包.python
pip install -U ZhihuVAPI
chrome
import ZhihuVAPI as zhihu
瀏覽器
後面的as zhihu
是別稱的意思,便於輸入.cookie
配置腳本使用的 cookies
,一共有兩種方法.日誌
config.py
的cookiepath
自定義cookies文件的路徑.config.py
禁用is_use_chrome_cookies
後,你能夠在裏面自定義headers
.import ZhihuVAPI as zhihu self=zhihu.self print(f'個人名字叫{self.name},目前得到了{self.voteup_count}個贊同,{self.favorited_count}個收藏,有{self.followers_count}個粉絲.提出了{self.question_count}個問題,撰寫了{self.answer_count}個答案,{self.articles_count}篇文章,擁有{self.columns_count}個專欄.')
輸出:code
個人名字叫以茄之名,目前得到了14480個贊同,7654個收藏,有876個粉絲.提出了24個問題,撰寫了49個答案,7篇文章,擁有2個專欄.
ZhihuVAPI 支持如下三種初始化:對象
zhihu.People('https://www.zhihu.com/people/iCheez/activities')
zhihu.People('e4f87c3476a926c1e2ef51b4fcd18fa3')
zhihu.People('iCheez')
對於點贊列表,粉絲列表等數據,ZhihuVAPI支持如下方式調用:ip
import ZhihuVAPI as zhihu self=zhihu.People('iCheez') for a in self.answers(): a:zhihu.Answer # 讓 IDE 智能提示 print(a.excerpt)
import ZhihuVAPI as zhihu self=zhihu.People('iCheez') for a in self.answers(5): a:zhihu.Answer # 讓 IDE 智能提示 print(a.excerpt)
import ZhihuVAPI as zhihu self=zhihu.People('iCheez') for a in self.answers(count=5,start=50): a:zhihu.Answer # 讓 IDE 智能提示 print(a.excerpt)
import ZhihuVAPI as zhihu self=zhihu.People('iCheez') for a in self.answers(count=5,page=2): a:zhihu.Answer # 讓 IDE 智能提示 print(a.excerpt)
import ZhihuVAPI as zhihu a=zhihu.Answer('https://www.zhihu.com/question/31343133/answer/58763430') for p in a.voters(count=5): p:zhihu.People # 讓 IDE 智能提示 print(p.name) if p.is_waterman(): print(f'{p.name} 是水軍') print(f'這個在 "{a.question.title}" 下的回答獲得了{a.voteup_count}個贊同,我{"已經贊同了"if a.is_voting else "尚未贊同" }') for c in a.comments(): c:zhihu.Comment print(c.content) a.down() #反對 a.undown() #取消反對(以此類推) a.vote() # 贊同 a.thank() # 感謝 # a.collect([zhihu.Collection('你本身的收藏夾 ID'),])
輸出:it
日誌:獲取以茄之名的點贊列表 午夜 鬥打敗佛 Chern 萬鉚工 言知 這個答案在 "如下這篇文章關於「四大發明」的觀點是否客觀、準確?" 下的回答獲得了201個贊同,我尚未贊同
import ZhihuVAPI as zhihu person = zhihu.People('zhihuadmin') for p in person.followers(count=5): # 粉絲 p: zhihu.People # 讓 IDE 智能提示 print(p.name) for a in person.answers(count=5): # 答案 a: zhihu.Answer # 讓 IDE 智能提示 print(a.voteup_count) for ar in person.articles(count=5): #文章 ar: zhihu.Article # 讓 IDE 智能提示 print(ar.voteup_count) for m in person.msgs(count=5): #私信 print(m) for pin in person.pins(count=5): #想法 pin: zhihu.Pin # 讓 IDE 智能提示 print(pin.voteup_count) person.block() # 屏蔽 person.unblock() # 取消屏蔽(以此類推) person.send('你好,我是{zhihu.self.name}') # 發送私信
import ZhihuVAPI as zhihu column = zhihu.Column('cheezpython') print(column.title) for ar in column.articles(): ar: zhihu.Article # 讓 IDE 智能提示 print(f'{ar.title} 一共有 {ar.voteup_count} 個贊') for p in column.coauthors(): p: zhihu.People # 讓 IDE 智能提示 print(f'{p.name} 他有 {p.voteup_count} 個贊') column.follow() #關注
import ZhihuVAPI as zhihu ar=zhihu.Article('https://zhuanlan.zhihu.com/p/39747259') for p in ar.voters(count=5): p:zhihu.People # 讓 IDE 智能提示 print(p.name) if p.is_waterman(): print(f'{p.name} 是水軍') print(f'這篇文章 "{ar.title}" 獲得了{ar.voteup_count}個贊同,我{"已經贊同了"if ar.is_voting else "尚未贊同" }') ar.down() #反對 ar.undown() #取消反對(以此類推) ar.vote() # 贊同 ar.thank() # 感謝 # ar.collect([zhihu.Collection('你本身的收藏夾 ID'),])
import ZhihuVAPI as zhihu co = zhihu.Collection('https://www.zhihu.com/collection/62217998') print(f'這個收藏夾的名字是{co.title}') for ct in co.contents(count=10): if ct.type == 'answer': print(f'{ct.content.excerpt}\n')
import ZhihuVAPI as zhihu