ZhihuVAPI:用Python優雅地玩知乎

ZhihuVAPI:優雅地玩知乎

簡介

ZhihuVAPI是什麼?

ZhihuVAPI 是一個能夠讓你以一種優雅的形式調用知乎數據的 Python 包.python

怎麼安裝或者更新 ZhihuVAPI?

pip install -U ZhihuVAPIchrome

使用

引用 ZhihuVAPI

import ZhihuVAPI as zhihu瀏覽器

後面的as zhihu是別稱的意思,便於輸入.cookie

配置用戶

配置腳本使用的 cookies,一共有兩種方法.日誌

  1. 什麼都無論,腳本會默認讀取 Chrome 或者 Cent 的 cookies.若是你是其餘類 Chrome 的瀏覽器,你能夠在config.pycookiepath自定義cookies文件的路徑.
  2. 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 支持如下三種初始化:對象

  1. URL 初始化:zhihu.People('https://www.zhihu.com/people/iCheez/activities')
  2. ID 初始化:zhihu.People('e4f87c3476a926c1e2ef51b4fcd18fa3')
  3. URL_Token 初始化(僅對用戶對象有效):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
相關文章
相關標籤/搜索