Skip to main content

Zhihu UNOFFICIAL API library in python3, with help of bs4, lxml, requests and html2text.

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zhihu-py3-0.3.23.tar.gz (62.9 kB view details)

Uploaded Source

Built Distributions

zhihu_py3-0.3.23-py3.5.egg (100.3 kB view details)

Uploaded Source

zhihu_py3-0.3.23-py3-none-any.whl (46.9 kB view details)

Uploaded Python 3

File details

Details for the file zhihu-py3-0.3.23.tar.gz.

File metadata

  • Download URL: zhihu-py3-0.3.23.tar.gz
  • Upload date:
  • Size: 62.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for zhihu-py3-0.3.23.tar.gz
Algorithm Hash digest
SHA256 2186b8e6f03115e59d963547ac3b04c7a54cef3924467c626094788f703a36af
MD5 8b5a2aa5766416954c2fd5a019e6c57e
BLAKE2b-256 14acd5c72c1384e1c87f058a310c3b8655333e94f0719c147990597839cbabb2

See more details on using hashes here.

File details

Details for the file zhihu_py3-0.3.23-py3.5.egg.

File metadata

File hashes

Hashes for zhihu_py3-0.3.23-py3.5.egg
Algorithm Hash digest
SHA256 2751766788bd71d793170a90099cb206c717507892bae894d28f4731c79cad82
MD5 887ae89b3fa1a857ea94a69c46f1d52f
BLAKE2b-256 7e4c762cd901ee5e9ec8221240d6e45b447812f40fa1cc22108795c306bfb4f1

See more details on using hashes here.

File details

Details for the file zhihu_py3-0.3.23-py3-none-any.whl.

File metadata

File hashes

Hashes for zhihu_py3-0.3.23-py3-none-any.whl
Algorithm Hash digest
SHA256 51066ffff273fc8cbfa16445d74d4df9d5fa62a759c262797dbd6021009a3184
MD5 d0bfa95bdde7cddb35da5914aceb1446
BLAKE2b-256 09821edb3ec54b3b36954b2bee35df5072d54a9f151e067f973fcc7b400cbeef

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page