通知
由于知乎前端老是改阿改的,每次我都要更新弄的我好烦的说……
所以我开发了一个新的项目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。
安装
本项目依赖于requests、BeautifulSoup4、html2text
已将项目发布到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 先随意弄成这样吧:
其他
有问题请开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)
| File | Size | Uploaded | |
|---|---|---|---|
| zhihu-py3-0.3.23.tar.gz | 62.9 kB | Details |
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 |