Skip to main content

Author Build DocumentationStatus PypiVersion License PypiDownloadStatus

通知

由于知乎前端老是改阿改的,每次我都要更新弄的我好烦的说……

所以我开发了一个新的项目Zhihu-OAuth

这个新项目用了一些黑科技手段,反正应该是更加稳定和快速了!而且还支持 Python 2 哟! 稳定我倒是没测,但是这里有一个 速度对比

如果你是准备新开一个项目的话,我强烈建议你看看我的新项目~

如果你已经用 Zhihu-py3 写了一些代码的话,我最近会写一个从 Zhihu-py3 转到 Zhihu-OAuth 的简易指南,你也可以关注一下哟。

毕竟嘛,有更好的方案的话,为什么不试试呢?

功能

由于知乎没有公开API,加上受到zhihu-python项目的启发,在Python3下重新写了一个知乎的数据解析模块。

提供的功能一句话概括为,用户提供知乎的网址构用于建对应类的对象,可以获取到某些需要的数据。

简单例子:

from zhihu import ZhihuClient

Cookies_File = 'cookies.json'

client = ZhihuClient(Cookies_File)

url = 'http://www.zhihu.com/question/24825703'
question = client.question(url)

print(question.title)
print(question.answer_num)
print(question.follower_num)
print(question.topics)

for answer in question.answers:
    print(answer.author.name, answer.upvote_num)

这段代码的输出为:

关系亲密的人之间要说「谢谢」吗?
627
4322
['心理学', '恋爱', '社会', '礼仪', '亲密关系']
龙晓航 50
小不点儿 198
芝士就是力量 89
欧阳忆希 425
...

另外还有Author(用户)Answer(答案)Collection(收藏夹)Column(专栏)Post(文章)Topic(话题)等类可以使用,Answer,Post类提供了save方法能将答案或文章保存为HTML或Markdown格式,具体请看文档,或者zhihu-test.py

安装

本项目依赖于requestsBeautifulSoup4html2text

已将项目发布到pypi,请使用下列命令安装

(sudo) pip(3) install (--upgrade) zhihu-py3

希望开启lxml的话请使用:

(sudo) pip(3) install (--upgrade) zhihu-py3[lxml]

因为lxml解析html效率高而且容错率强,在知乎使用<br>时,自带的html.parser会将其转换成<br>...</br>,而lxml则转换为<br/>,更为标准且美观,所以推荐使用第二个命令。

不安装lxml也能使用本模块,此时会自动使用html.parser作为解析器。

PS 若在安装lxml时出错,请安装libxml和libxslt后重试:

sudo apt-get install libxml2 libxml2-dev libxslt1.1 libxslt1-dev

准备工作

第一次使用推荐运行以下代码生成 cookies 文件:

from zhihu import ZhihuClient

ZhihuClient().create_cookies('cookies.json')

运行结果

====== zhihu login =====
email: <your-email>
password: <your-password>
please check captcha.gif for captcha
captcha: <captcha-code>
====== logging.... =====
login successfully
cookies file created.

运行成功后会在目录下生成cookies.json文件。

以下示例皆以登录成功为前提。

建议在正式使用之前运行zhihu-test.py测试一下。

用法实例

为了精简 Readme,本部分移动至文档内。

请看文档的「用法示例」部分。

登录方法综述

为了精简 Readme,本部分移动至文档内。

请看文档的「登录方法综述」部分。

文档

终于搞定了文档这个磨人的小妖精,可惜 Sphinx 还是不会用 T^T 先随意弄成这样吧:

Master版文档

Dev版文档

其他

有问题请开Issue,几个小时后无回应可加最后面的QQ群询问。

友链:

  • zhihurss:一个基于 zhihu-py3 做的跨平台知乎 rss(any user) 的客户端。

TODO List

  • [x] 增加获取用户关注者,用户追随者

  • [x] 增加获取答案点赞用户功能

  • [x] 获取用户头像地址

  • [x] 打包为标准Python模块

  • [x] 重构代码,增加ZhihuClient类,使类可以自定义cookies文件

  • [x] 收藏夹关注者,问题关注者等等

  • [x] ZhihuClient增加各种用户操作(比如给某答案点赞)

  • [ ] Unittest (因为知乎可能会变,所以这个有点难

  • [x] 增加获取用户关注专栏数和关注专栏的功能

  • [x] 增加获取用户关注话题数和关注话题的功能

  • [x] 评论类也要慢慢提上议程了吧

联系我

Github:@7sDream

知乎:@7sDream

新浪微博:@Dilover

邮箱:给我发邮件

编程交流群:478786205

Release files for zhihu-py3 0.3.23

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for zhihu-py3 0.3.23
File Size Uploaded
zhihu-py3-0.3.23.tar.gz 62.9 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for zhihu-py3 0.3.23
File Interpreter ABI Platform
zhihu_py3-0.3.23-py3.5.egg Legacy Egg format - - Details
zhihu_py3-0.3.23-py3-none-any.whl Python 3 none any Details

Total release size: 210.1 kB

Release files / zhihu-py3-0.3.23.tar.gz

Download URL zhihu-py3-0.3.23.tar.gz
Size 62.9 kB
Tags Source
SHA-256 checksum
How to use checksums
2186b8e6f03115e59d963547ac3b04c7a54cef3924467c626094788f703a36af
BLAKE2b-256 checksum
How to use checksums
14acd5c72c1384e1c87f058a310c3b8655333e94f0719c147990597839cbabb2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / zhihu_py3-0.3.23-py3.5.egg

Download URL zhihu_py3-0.3.23-py3.5.egg
Size 100.3 kB
Tags Egg
SHA-256 checksum
How to use checksums
2751766788bd71d793170a90099cb206c717507892bae894d28f4731c79cad82
BLAKE2b-256 checksum
How to use checksums
7e4c762cd901ee5e9ec8221240d6e45b447812f40fa1cc22108795c306bfb4f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / zhihu_py3-0.3.23-py3-none-any.whl

Download URL zhihu_py3-0.3.23-py3-none-any.whl
Size 46.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
51066ffff273fc8cbfa16445d74d4df9d5fa62a759c262797dbd6021009a3184
BLAKE2b-256 checksum
How to use checksums
09821edb3ec54b3b36954b2bee35df5072d54a9f151e067f973fcc7b400cbeef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page