zhihu-python:获取知乎信息
===============================
:Author: `egrcc <https://github.com/egrcc>`_ ( `微博 <http://weibo.com/u/2948739432>`_ | `电邮 <zhaolujun1994@gmail.com>`_ )
:Committer: `Eureka22 <https://github.com/Eureka22>`_ , `lufo816 <https://github.com/lufo816>`_ , `LuoZijun <https://github.com/LuoZijun>`_
:Update: 09/09 2015
.. contents::
介绍
----
zhihu-python 采用 python2.7 编写,用来方便地获取知乎上各种内容的信息,并且可以方便地将答案备份导出为 txt 或 markdown 文件。由于知乎官方目前没有提供 api,所以有了此项目的存在。
使用 python3 的类似项目可以参见:`zhihu-py3 <https://github.com/7sDream/zhihu-py3>`_ 。
**注: 本项目代码均在 Ubuntu14.04 上使用 python2.7.6 编写和测试通过,其他环境可能存在一定问题。**
获取某个问题下的全部回答并导出,很简单:
.. code-block:: python
from zhihu import Question
url = "http://www.zhihu.com/question/24269892"
question = Question(url)
answers = question.get_all_answers()
for answer in answers:
answer.to_txt()
answer.to_md()
会在当前目录下新建text,markdown两个文件夹,并将所有txt文件保存到text文件夹,所有markdown文件保存到markdown文件夹。
备份某大V的全部回答,也很简单:
.. code-block:: python
from zhihu import User
user_url = "http://www.zhihu.com/people/jixin"
user = User(user_url)
answers = user.get_answers()
for answer in answers:
answer.to_txt()
answer.to_md()
导出的markdown,txt文件示例请见该项目的markdown,text文件夹。当然,想要知道某大V关注了那些人,提了什么问题也不在话下,详情请见:快速开始。
快速开始
---------
准备
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
**Tips** :
1. 确保你的系统里面已经安装了 `Python2.7 <https://www.python.org/>`_ ,不同作业系统如何安装不再赘述。
2. 检查你系统中 `python` 和 `pip` 的版本, 如果不属于 `python2.7` , 请在执行代码范例时,自行将 `python` 和 `pip` 分别替换成 `python2.7` 和 `pip2` 。
3. 确保你的系统中安装了 `git` 程序 以及 `python-pip` 。
**克隆本项目**
.. code:: bash
git clone git@github.com:egrcc/zhihu-python.git
cd zhihu-python
**解决依赖**
* `Beautiful Soup 4 <http://www.crummy.com/software/BeautifulSoup/>`_
* `requests <https://github.com/kennethreitz/requests>`_
* `html2text <https://github.com/aaronsw/html2text>`_
* `termcolor <https://pypi.python.org/pypi/termcolor>`_
.. code:: bash
sudo pip install -r requirements.txt
or
.. code:: bash
sudo pip2 install -r requirements.txt
**登录知乎**
登录 `知乎` 生成身份信息, 保存在当前目录的 `cookies` 文件中。
.. code:: bash
python auth.py
**执行测试**
.. code:: bash
python test.py
不出意外,一切应该完美运行 :))
Question:获取问题信息
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Question 代表一个问题,处理知乎问题相关操作。创建一个 Question 对象需传入该问题的 url ,如:
.. code-block:: python
from zhihu import Question
url = "http://www.zhihu.com/question/24269892"
question = Question(url)
得到 Question 对象后,可以获取该问题的一些信息:
.. code-block:: python
# -*- coding: utf-8 -*-
from zhihu import Question
url = "http://www.zhihu.com/question/24269892"
question = Question(url)
# 获取该问题的标题
title = question.get_title()
# 获取该问题的详细描述
detail = question.get_detail()
# 获取回答个数
answers_num = question.get_answers_num()
# 获取关注该问题的人数
followers_num = question.get_followers_num()
# 获取该问题所属话题
topics = question.get_topics()
# 获取该问题被浏览次数
visit_times = question.get_visit_times()
# 获取排名第一的回答
top_answer = question.get_top_answer()
# 获取排名前十的十个回答
top_answers = question.get_top_i_answers(10)
# 获取所有回答
answers = question.get_all_answers()
print title # 输出:现实可以有多美好?
print detail
# 输出:
# 本问题相对于“现实可以多残酷?传送门:现实可以有多残酷?
# 题主: 昨天看了“现实可以有多残酷“。感觉不太好,所以我
# 开了这个问题以相对应,希望能够“中和一下“。和那个问题题主不想
# 把它变成“比惨大会“一样,我也不想把这个变成“鸡汤故事会“,或者
# 是“晒幸福“比赛。所以大家从“现实,实际”的角度出发,讲述自己的
# 美好故事,让大家看看社会的冷和暖,能更加辨证地看待世界,是此
# 题和彼题共同的“心愿“吧。
print answers_num # 输出:2441
print followers_num # 输出:26910
for topic in topics:
print topic, # 输出:情感克制 现实 社会 个人经历
print visit_times # 输出: 该问题当前被浏览的次数
print top_answer
# 输出:<zhihu.Answer instance at 0x7f8b6582d0e0>
# Answer类对象
print top_answers
# 输出:<generator object get_top_i_answers at 0x7fed676eb320>
# 代表前十的Answer的生成器
print answers
# 输出:<generator object get_all_answer at 0x7f8b66ba30a0>
# 代表所有Answer的生成器
Answer:获取答案信息
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Answer 代表了一个答案,处理知乎答案相关操作。创建一个 Answer 对象需传入该答案的 url ,如:
.. code-block:: python
from zhihu import Answer
answer_url = "http://www.zhihu.com/question/24269892/answer/29960616"
answer = Answer(answer_url)
得到 Answer 对象后,可以获取该答案的一些信息:
.. code-block:: python
# -*- coding: utf-8 -*-
from zhihu import Answer
answer_url = "http://www.zhihu.com/question/24269892/answer/29960616"
answer = Answer(answer_url)
# 获取该答案回答的问题
question = answer.get_question()
# 获取该答案的作者
author = answer.get_author()
# 获取该答案获得的赞同数
upvote = answer.get_upvote()
# 获取该答案所属问题被浏览次数
visit_times = answer.get_visit_times()
# 获取所有给该答案点赞的用户信息
voters = answer.get_voters()
# 把答案输出为txt文件
answer.to_txt()
# 把答案输出为markdown文件
answer.to_md()
print question
# <zhihu.Question instance at 0x7f0b25d13f80>
# 一个Question对象
print question.get_title() # 输出:现实可以有多美好?
print author
# <zhihu.User instance at 0x7f0b25425b90>
# 一个User对象
print voters
# <generator object get_voters at 0x7f32fbe55730>
# 代表所有该答案点赞的用户的生成器
print author.get_user_id() # 输出:田浩
print upvote # 输出:9320
print visit_times # 输出: 改答案所属问题被浏览次数
User:获取用户信息
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
User 代表一个用户,处理用户相关操作。创建一个 User 对象需传入该用户的 url ,如:
.. code-block:: python
from zhihu import User
user_url = "http://www.zhihu.com/people/jixin"
user = User(user_url)
得到 User 对象后,可以获取该用户的一些信息:
.. code-block:: python
# -*- coding: utf-8 -*-
from zhihu import User
user_url = "http://www.zhihu.com/people/jixin"
user = User(user_url)
# 获取用户ID
user_id = user.get_user_id()
# 获取该用户的关注者人数
followers_num = user.get_followers_num()
# 获取该用户关注的人数
followees_num =user.get_followees_num()
# 获取该用户提问的个数
asks_num = user.get_asks_num()
# 获取该用户回答的个数
answers_num = user.get_answers_num()
# 获取该用户收藏夹个数
collections_num = user.get_collections_num()
# 获取该用户获得的赞同数
agree_num = user.get_agree_num()
# 获取该用户获得的感谢数
thanks_num = user.get_thanks_num()
# 获取该用户关注的人
followees = user.get_followees()
# 获取关注该用户的人
followers = user.get_followers()
# 获取该用户提的问题
asks = user.get_asks()
# 获取该用户回答的问题的答案
answers = user.get_answers()
# 获取该用户的收藏夹
collections = user.get_collections()
print user_id # 黄继新
print followers_num # 614840
print followees_num # 8408
print asks_num # 1323
print answers_num # 786
print collections_num # 44
print agree_num # 46387
print thanks_num # 11477
print followees
# <generator object get_followee at 0x7ffcac3af050>
# 代表所有该用户关注的人的生成器对象
print followers
# <generator object get_follower at 0x7ffcac3af0f0>
# 代表所有关注该用户的人的生成器对象
print asks
# <generator object get_ask at 0x7ffcab9db780>
# 代表该用户提的所有问题的生成器对象
print answers
# <generator object get_answer at 0x7ffcab9db7d0>
# 代表该用户回答的所有问题的答案的生成器对象
print collections
# <generator object get_collection at 0x7ffcab9db820>
# 代表该用户收藏夹的生成器对象
Collection:获取收藏夹信息
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Collection 代表一个收藏夹,处理收藏夹相关操作。创建一个 Collection 对象需传入该收藏夹的 url ,如:
.. code-block:: python
from zhihu import Collection
collection_url = "http://www.zhihu.com/collection/36750683"
collection = Collection(collection_url)
得到 Collection 对象后,可以获取该收藏夹的一些信息:
.. code-block:: python
# -*- coding: utf-8 -*-
from zhihu import Collection
collection_url = "http://www.zhihu.com/collection/36750683"
collection = Collection(collection_url)
# 获取该收藏夹的创建者
creator = collection.get_creator()
# 获取该收藏夹的名字
name = collection.get_name()
# 获取该收藏夹下的前十个答案
top_answers = collection.get_top_i_answers(10)
# 获取该收藏夹下的所有答案
answers = collection.get_all_answers()
print creator
# <zhihu.User instance at 0x7fe1296f29e0>
# 一个User对象
print creator.get_user_id() # 稷黍
print name # 给你一个不同的视角
print top_answers
# <generator object get_top_i_answers at 0x7f378465dc80>
# 代表前十个答案的生成器对象
print answers
# <generator object get_all_answer at 0x7fe12a29b280>
# 代表所有答案的生成器对象
综合实例
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
将 Question , Answer , User , Collection 结合起来使用。实例如下:
.. code-block:: python
# -*- coding: utf-8 -*-
from zhihu import Question
from zhihu import Answer
from zhihu import User
from zhihu import Collection
url = "http://www.zhihu.com/question/24269892"
question = Question(url)
# 得到排名第一的答案
answer = question.get_top_answer()
# 得到排名第一的答案的作者
user = answer.get_author()
# 得到该作者回答过的所有问题的答案
user_answers = user.get_answers()
# 输出该作者回答过的所有问题的标题
for answer in user_answers:
print answer.get_question().get_title()
# 得到该用户的所有收藏夹
user_collections = user.get_collections()
for collection in user_collections:
# 输出每一个收藏夹的名字
print collection.get_name()
# 得到该收藏夹下的前十个回答
top_answers = collection.get_top_i_answers(10)
# 把答案内容转成txt,markdown
for answer in top_answers:
answer.to_txt()
answer.to_md()
以上示例均可以在test.py文件中找到。
虽然是单线程,但速度不算太慢。抓取 `哪些东西买了之后,会让人因生活质量和幸福感提升而感觉相见恨晚? <http://www.zhihu.com/question/20840874>`_ 下前200个回答,91秒;抓取 `有哪些 100 元以下,很少见但高大上的物件? <http://www.zhihu.com/question/23054572>`_ 下前50个回答,48秒;抓取 `现实可以有多美好? <http://www.zhihu.com/question/24269892>`_ 下前200个回答,69秒。生成的文件请见markdown,text文件夹。所有匿名用户的回答放在一个文件里面。
API
-------
zhihu.Question ---- 知乎问题操作类
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*class* zhihu. **Question** (*url, title = None*)
Question 以 url 为唯一标识,创建一个 Question 对象实例必须传入一个代表知乎问题的 url (如: http://www.zhihu.com/question/26611428),需包含“http://”。如果传入的不是代表问题的 url ,程序会报错。通过调用 Question 类的一系列方法,获得该问题的一些信息。
**Parameters**:
* **url** -- 该问题的链接,字符串
* **title** -- 该问题的标题,字符串,可选
**Returns**: 一个 Question 实例对象
**get_title** ()
得到该问题的标题。
**Returns**: 代表标题的字符串
**get_detail** ()
得到该问题的详细描述。原问题的描述可能带有图片或视频,这里得到的是纯文字。
**Returns**: 代表详细描述的字符串
**get_answers_num** ()
得到该问题的回答个数。
**Returns**: 代表回答个数的 int 型整数
**get_followers_num** ()
得到关注该问题的人数。
**Returns**: 代表人数的 int 型整数
**get_topics** ()
得到该问题所属的话题。
**Returns**: 一个 list ,每一个元素为代表一个话题的字符串
注:以后可能会添加一个 Topic 类,到时候每一个元素为代表一个话题的 Topic 类对象。
**get_all_answers** ()
得到该问题的所有回答。
**Returns**: 包含所有答案的 generator 对象。其中每一个元素为代表一个答案的 Answer 对象
**get_top_i_answers** (n)
得到该问题的前 n 个回答。
**Parameters**: **n** -- int 型整数
**Returns**: 包含前 n 个答案的 generator 对象。其中每一个元素为代表一个答案的 Answer 对象
**get_top_answer** ()
得到目前排名第一的回答。
**Returns**: 代表该答案的 Answer 对象
**get_visit_times** ()
得到该问题被浏览次数。该方法由 `@lufo816 <https://github.com/lufo816>`_ 添加。
**Returns**: 代表浏览次数的 int 型整数
zhihu.User ---- 知乎用户操作类
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*class* zhihu. **User** (*user_url, user_id = None*)
User 以 url 为唯一标识,创建一个 User 对象实例必须传入一个代表知乎用户的 url (如: http://www.zhihu.com/people/egrcc),需包含“http://”。如果传入的不是代表用户的 url ,程序会报错。通过调用 User 类的一系列方法,获得该用户的一些信息。
**Parameters**:
* **user_url** -- 该用户的链接,字符串
* **user_id** -- 该用户的 ID ,字符串,可选
**Returns**: 一个 User 实例对象
**get_user_id** ()
得到该用户的ID。
**Returns**: 代表 ID 的字符串
**get_followees_num** ()
得到该用户关注的人的个数。
**Returns**: 代表人数的 int 型整数
**get_followers_num** ()
得到关注该用户的人的个数。
**Returns**: 代表人数的 int 型整数
**get_agree_num** ()
得到该用户获得的赞同数。
**Returns**: 代表赞同数的 int 型整数
**get_thanks_num** ()
得到该用户获得的感谢数。
**Returns**: 代表感谢数的 int 型整数
**get_asks_num** ()
得到该用户提问题的个数。
**Returns**: 代表问题数的 int 型整数
**get_answers_num** ()
得到该用户回答问题的个数。
**Returns**: 代表问题数的 int 型整数
**get_collections_num** ()
得到该用户收藏夹的个数。
**Returns**: 代表收藏夹数的 int 型整数
**get_followees** ()
得到该用户关注的人。
**Returns**: 包含所有该用户关注的人的 generator 对象。其中每一个元素为代表一个用户的 User 对象
**get_followers** ()
得到关注该用户的人。
**Returns**: 包含所有关注该用户的人的 generator 对象。其中每一个元素为代表一个用户的 User 对象
**get_asks** ()
得到该用户提的所有问题。
**Returns**: 包含所有问题的 generator 对象。其中每一个元素为代表一个问题的 Question 对象
**get_answers** ()
得到该用户回答的所有问题的答案。
**Returns**: 包含所有回答的 generator 对象。其中每一个元素为代表一个回答的 Answer 对象
**get_collections** ()
得到该用户的所有收藏夹。
**Returns**: 包含所有收藏夹的 generator 对象。其中每一个元素为代表一个收藏夹的 Collection 对象
zhihu.Answer ---- 知乎回答操作类
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*class* zhihu. **Answer** (*answer_url, question = None, author = None, upvote = None, content = None*)
Answer 以 url 为唯一标识,创建一个 Answer 对象实例必须传入一个代表知乎回答的 url (如: http://www.zhihu.com/question/19878575/answer/14776495),需包含“http://”。如果传入的不是代表回答的 url ,程序会报错。通过调用 Answer 类的一系列方法,获得该回答的一些信息。一般不自己创建Answer对象。
**Parameters**:
* **answer_url** -- 该答案的链接,字符串
* **question** -- 该答案回答的问题, Question 对象,可选
* **author** -- 该答案的作者, User 对象,可选
* **upvote** -- 该答案获得的赞同数, int 型整数,可选
* **content** -- 该答案的内容, BeautifulSoup 对象,可选
**Returns**: 一个 Answer 实例对象
**get_question** ()
得到该答案回答的问题。
**Returns**: 一个 Question 对象
**get_author** ()
得到该答案的作者 。
**Returns**: 一个 User 对象
**get_upvote** ()
得到该答案获得的赞同数。
**Returns**: 一个 int 型整数
**get_content** ()
得到该答案的内容。
**Returns**: 一个 BeautifulSoup 对象
**get_visit_times** ()
得到该答案所属问题被浏览次数。该方法由 `@lufo816 <https://github.com/lufo816>`_ 添加。
**Returns**: 代表浏览次数的 int 型整数
**get_voters** ()
得到给该答案点赞的用户。该方法由 `@lufo816 <https://github.com/lufo816>`_ 添加。
**Returns**: 包含所有给该答案点赞的用户的 generator 对象。其中每一个元素为代表一个用户的 User 对象
**to_txt** ()
将该答案转成txt文件,并会在当前目录下创建一个text文件夹,所生成的txt文件均保存在该文件夹。
**to_md** ()
将该答案转成markdown文件,并会在当前目录下创建一个markdown文件夹,所生成的markdown文件均保存在该文件夹。
zhihu.Collection ---- 知乎收藏夹操作类
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*class* zhihu. **Collection** (*url, name = None, creator = None*)
Collection 以 url 为唯一标识,创建一个 Collection 对象实例必须传入一个代表知乎收藏夹的 url (如: http://www.zhihu.com/collection/27053469),需包含“http://”。如果传入的不是代表收藏夹的 url ,程序会报错。通过调用 Collection 类的一系列方法,获得该收藏夹的一些信息。
**Parameters**:
* **url** -- 该收藏夹的链接,字符串
* **name** -- 该收藏夹的名字,字符串,可选
* **creator** -- 该收藏夹的创建者,User 对象,可选
**Returns**: 一个 Collection 实例对象
**get_name** ()
得到该收藏夹的名字。
**Returns**: 代表名字的字符串
**get_creator** ()
得到该收藏夹的创建者。
**Returns**:代表创建者 User 对象
**get_all_answers** ()
得到该收藏夹收藏的所有回答。
**Returns**: 包含该收藏夹下所有回答的 generator 对象。其中每一个元素为代表一个回答的 Answer 对象
**get_top_i_answers** (n)
得到该收藏夹收藏的前 n 个回答。
**Parameters**: **n** -- int 型整数
**Returns**: 包含该收藏夹下前 n 个回答的 generator 对象。其中每一个元素为代表一个回答的 Answer 对象
联系我
----------
- 微博:http://weibo.com/u/2948739432
- github:https://github.com/egrcc
- email:zhaolujun1994@gmail.com
Raw data
{
"_id": null,
"home_page": "https://github.com/yanjlee/zhihu-python",
"name": "zhihu-python",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": null,
"author": "yanjlee",
"author_email": "yanjlee@163.com",
"download_url": "https://files.pythonhosted.org/packages/2e/a2/74994d13339932151475427bb6f435d3274e7d03e4e4b9605111c248e191/zhihu_python-1.2.5.tar.gz",
"platform": null,
"description": "zhihu-python\uff1a\u83b7\u53d6\u77e5\u4e4e\u4fe1\u606f\r\n===============================\r\n\r\n:Author: `egrcc <https://github.com/egrcc>`_ ( `\u5fae\u535a <http://weibo.com/u/2948739432>`_ | `\u7535\u90ae <zhaolujun1994@gmail.com>`_ )\r\n:Committer: `Eureka22 <https://github.com/Eureka22>`_ , `lufo816 <https://github.com/lufo816>`_ , `LuoZijun <https://github.com/LuoZijun>`_\r\n:Update: 09/09 2015\r\n\r\n\r\n.. contents::\r\n\r\n\r\n\u4ecb\u7ecd\r\n----\r\n\r\nzhihu-python \u91c7\u7528 python2.7 \u7f16\u5199\uff0c\u7528\u6765\u65b9\u4fbf\u5730\u83b7\u53d6\u77e5\u4e4e\u4e0a\u5404\u79cd\u5185\u5bb9\u7684\u4fe1\u606f\uff0c\u5e76\u4e14\u53ef\u4ee5\u65b9\u4fbf\u5730\u5c06\u7b54\u6848\u5907\u4efd\u5bfc\u51fa\u4e3a txt \u6216 markdown \u6587\u4ef6\u3002\u7531\u4e8e\u77e5\u4e4e\u5b98\u65b9\u76ee\u524d\u6ca1\u6709\u63d0\u4f9b api\uff0c\u6240\u4ee5\u6709\u4e86\u6b64\u9879\u76ee\u7684\u5b58\u5728\u3002\r\n\r\n\u4f7f\u7528 python3 \u7684\u7c7b\u4f3c\u9879\u76ee\u53ef\u4ee5\u53c2\u89c1\uff1a`zhihu-py3 <https://github.com/7sDream/zhihu-py3>`_ \u3002\r\n\r\n**\u6ce8: \u672c\u9879\u76ee\u4ee3\u7801\u5747\u5728 Ubuntu14.04 \u4e0a\u4f7f\u7528 python2.7.6 \u7f16\u5199\u548c\u6d4b\u8bd5\u901a\u8fc7\uff0c\u5176\u4ed6\u73af\u5883\u53ef\u80fd\u5b58\u5728\u4e00\u5b9a\u95ee\u9898\u3002**\r\n\r\n\u83b7\u53d6\u67d0\u4e2a\u95ee\u9898\u4e0b\u7684\u5168\u90e8\u56de\u7b54\u5e76\u5bfc\u51fa\uff0c\u5f88\u7b80\u5355\uff1a\r\n\r\n.. code-block:: python\r\n\r\n from zhihu import Question\r\n \r\n url = \"http://www.zhihu.com/question/24269892\"\r\n question = Question(url)\r\n answers = question.get_all_answers()\r\n for answer in answers:\r\n answer.to_txt()\r\n answer.to_md()\r\n \r\n\u4f1a\u5728\u5f53\u524d\u76ee\u5f55\u4e0b\u65b0\u5efatext\uff0cmarkdown\u4e24\u4e2a\u6587\u4ef6\u5939\uff0c\u5e76\u5c06\u6240\u6709txt\u6587\u4ef6\u4fdd\u5b58\u5230text\u6587\u4ef6\u5939\uff0c\u6240\u6709markdown\u6587\u4ef6\u4fdd\u5b58\u5230markdown\u6587\u4ef6\u5939\u3002\r\n\r\n\u5907\u4efd\u67d0\u5927V\u7684\u5168\u90e8\u56de\u7b54\uff0c\u4e5f\u5f88\u7b80\u5355\uff1a\r\n\r\n.. code-block:: python\r\n \r\n from zhihu import User\r\n \r\n user_url = \"http://www.zhihu.com/people/jixin\"\r\n user = User(user_url)\r\n answers = user.get_answers()\r\n for answer in answers:\r\n answer.to_txt()\r\n answer.to_md()\r\n \r\n\u5bfc\u51fa\u7684markdown\uff0ctxt\u6587\u4ef6\u793a\u4f8b\u8bf7\u89c1\u8be5\u9879\u76ee\u7684markdown\uff0ctext\u6587\u4ef6\u5939\u3002\u5f53\u7136\uff0c\u60f3\u8981\u77e5\u9053\u67d0\u5927V\u5173\u6ce8\u4e86\u90a3\u4e9b\u4eba\uff0c\u63d0\u4e86\u4ec0\u4e48\u95ee\u9898\u4e5f\u4e0d\u5728\u8bdd\u4e0b\uff0c\u8be6\u60c5\u8bf7\u89c1\uff1a\u5feb\u901f\u5f00\u59cb\u3002 \r\n\r\n\r\n\r\n\u5feb\u901f\u5f00\u59cb\r\n---------\r\n\r\n\u51c6\u5907\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n\r\n**Tips** :\r\n\r\n1. \u786e\u4fdd\u4f60\u7684\u7cfb\u7edf\u91cc\u9762\u5df2\u7ecf\u5b89\u88c5\u4e86 `Python2.7 <https://www.python.org/>`_ \uff0c\u4e0d\u540c\u4f5c\u4e1a\u7cfb\u7edf\u5982\u4f55\u5b89\u88c5\u4e0d\u518d\u8d58\u8ff0\u3002\r\n2. \u68c0\u67e5\u4f60\u7cfb\u7edf\u4e2d `python` \u548c `pip` \u7684\u7248\u672c, \u5982\u679c\u4e0d\u5c5e\u4e8e `python2.7` , \u8bf7\u5728\u6267\u884c\u4ee3\u7801\u8303\u4f8b\u65f6\uff0c\u81ea\u884c\u5c06 `python` \u548c `pip` \u5206\u522b\u66ff\u6362\u6210 `python2.7` \u548c `pip2` \u3002\r\n3. \u786e\u4fdd\u4f60\u7684\u7cfb\u7edf\u4e2d\u5b89\u88c5\u4e86 `git` \u7a0b\u5e8f \u4ee5\u53ca `python-pip` \u3002\r\n\r\n\r\n**\u514b\u9686\u672c\u9879\u76ee**\r\n\r\n\r\n.. code:: bash\r\n\r\n git clone git@github.com:egrcc/zhihu-python.git\r\n cd zhihu-python\r\n\r\n\r\n**\u89e3\u51b3\u4f9d\u8d56**\r\n\r\n* `Beautiful Soup 4 <http://www.crummy.com/software/BeautifulSoup/>`_\r\n* `requests <https://github.com/kennethreitz/requests>`_\r\n* `html2text <https://github.com/aaronsw/html2text>`_\r\n* `termcolor <https://pypi.python.org/pypi/termcolor>`_\r\n\r\n\r\n.. code:: bash\r\n\r\n sudo pip install -r requirements.txt\r\n\r\n\r\nor\r\n\r\n.. code:: bash\r\n\r\n sudo pip2 install -r requirements.txt\r\n\r\n\r\n\r\n**\u767b\u5f55\u77e5\u4e4e**\r\n\r\n\r\n\u767b\u5f55 `\u77e5\u4e4e` \u751f\u6210\u8eab\u4efd\u4fe1\u606f, \u4fdd\u5b58\u5728\u5f53\u524d\u76ee\u5f55\u7684 `cookies` \u6587\u4ef6\u4e2d\u3002\r\n\r\n.. code:: bash\r\n \r\n python auth.py\r\n\r\n\r\n**\u6267\u884c\u6d4b\u8bd5**\r\n\r\n\r\n.. code:: bash\r\n\r\n python test.py\r\n\r\n\u4e0d\u51fa\u610f\u5916\uff0c\u4e00\u5207\u5e94\u8be5\u5b8c\u7f8e\u8fd0\u884c :))\r\n\r\n\r\n\r\nQuestion\uff1a\u83b7\u53d6\u95ee\u9898\u4fe1\u606f\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n\r\nQuestion \u4ee3\u8868\u4e00\u4e2a\u95ee\u9898\uff0c\u5904\u7406\u77e5\u4e4e\u95ee\u9898\u76f8\u5173\u64cd\u4f5c\u3002\u521b\u5efa\u4e00\u4e2a Question \u5bf9\u8c61\u9700\u4f20\u5165\u8be5\u95ee\u9898\u7684 url \uff0c\u5982\uff1a\r\n\r\n.. code-block:: python\r\n\r\n from zhihu import Question\r\n \r\n url = \"http://www.zhihu.com/question/24269892\"\r\n question = Question(url)\r\n\r\n\u5f97\u5230 Question \u5bf9\u8c61\u540e\uff0c\u53ef\u4ee5\u83b7\u53d6\u8be5\u95ee\u9898\u7684\u4e00\u4e9b\u4fe1\u606f\uff1a\r\n\r\n.. code-block:: python\r\n\r\n # -*- coding: utf-8 -*-\r\n from zhihu import Question\r\n \r\n url = \"http://www.zhihu.com/question/24269892\"\r\n question = Question(url)\r\n\r\n # \u83b7\u53d6\u8be5\u95ee\u9898\u7684\u6807\u9898\r\n title = question.get_title()\r\n # \u83b7\u53d6\u8be5\u95ee\u9898\u7684\u8be6\u7ec6\u63cf\u8ff0\r\n detail = question.get_detail()\r\n # \u83b7\u53d6\u56de\u7b54\u4e2a\u6570\r\n answers_num = question.get_answers_num()\r\n # \u83b7\u53d6\u5173\u6ce8\u8be5\u95ee\u9898\u7684\u4eba\u6570\r\n followers_num = question.get_followers_num()\r\n # \u83b7\u53d6\u8be5\u95ee\u9898\u6240\u5c5e\u8bdd\u9898\r\n topics = question.get_topics()\r\n # \u83b7\u53d6\u8be5\u95ee\u9898\u88ab\u6d4f\u89c8\u6b21\u6570\r\n visit_times = question.get_visit_times()\r\n # \u83b7\u53d6\u6392\u540d\u7b2c\u4e00\u7684\u56de\u7b54\r\n top_answer = question.get_top_answer()\r\n # \u83b7\u53d6\u6392\u540d\u524d\u5341\u7684\u5341\u4e2a\u56de\u7b54\r\n top_answers = question.get_top_i_answers(10)\r\n # \u83b7\u53d6\u6240\u6709\u56de\u7b54\r\n answers = question.get_all_answers()\r\n\r\n print title # \u8f93\u51fa\uff1a\u73b0\u5b9e\u53ef\u4ee5\u6709\u591a\u7f8e\u597d\uff1f\r\n print detail\r\n # \u8f93\u51fa\uff1a\r\n # \u672c\u95ee\u9898\u76f8\u5bf9\u4e8e\u201c\u73b0\u5b9e\u53ef\u4ee5\u591a\u6b8b\u9177\uff1f\u4f20\u9001\u95e8\uff1a\u73b0\u5b9e\u53ef\u4ee5\u6709\u591a\u6b8b\u9177\uff1f\r\n # \u9898\u4e3b\uff1a \u6628\u5929\u770b\u4e86\u201c\u73b0\u5b9e\u53ef\u4ee5\u6709\u591a\u6b8b\u9177\u201c\u3002\u611f\u89c9\u4e0d\u592a\u597d\uff0c\u6240\u4ee5\u6211\r\n # \u5f00\u4e86\u8fd9\u4e2a\u95ee\u9898\u4ee5\u76f8\u5bf9\u5e94\uff0c\u5e0c\u671b\u80fd\u591f\u201c\u4e2d\u548c\u4e00\u4e0b\u201c\u3002\u548c\u90a3\u4e2a\u95ee\u9898\u9898\u4e3b\u4e0d\u60f3\r\n # \u628a\u5b83\u53d8\u6210\u201c\u6bd4\u60e8\u5927\u4f1a\u201c\u4e00\u6837\uff0c\u6211\u4e5f\u4e0d\u60f3\u628a\u8fd9\u4e2a\u53d8\u6210\u201c\u9e21\u6c64\u6545\u4e8b\u4f1a\u201c\uff0c\u6216\u8005\r\n # \u662f\u201c\u6652\u5e78\u798f\u201c\u6bd4\u8d5b\u3002\u6240\u4ee5\u5927\u5bb6\u4ece\u201c\u73b0\u5b9e\uff0c\u5b9e\u9645\u201d\u7684\u89d2\u5ea6\u51fa\u53d1\uff0c\u8bb2\u8ff0\u81ea\u5df1\u7684\r\n # \u7f8e\u597d\u6545\u4e8b\uff0c\u8ba9\u5927\u5bb6\u770b\u770b\u793e\u4f1a\u7684\u51b7\u548c\u6696\uff0c\u80fd\u66f4\u52a0\u8fa8\u8bc1\u5730\u770b\u5f85\u4e16\u754c\uff0c\u662f\u6b64\r\n # \u9898\u548c\u5f7c\u9898\u5171\u540c\u7684\u201c\u5fc3\u613f\u201c\u5427\u3002\r\n print answers_num # \u8f93\u51fa\uff1a2441\r\n print followers_num # \u8f93\u51fa\uff1a26910\r\n for topic in topics:\r\n print topic, # \u8f93\u51fa\uff1a\u60c5\u611f\u514b\u5236 \u73b0\u5b9e \u793e\u4f1a \u4e2a\u4eba\u7ecf\u5386\r\n print visit_times # \u8f93\u51fa: \u8be5\u95ee\u9898\u5f53\u524d\u88ab\u6d4f\u89c8\u7684\u6b21\u6570\r\n print top_answer \r\n # \u8f93\u51fa\uff1a<zhihu.Answer instance at 0x7f8b6582d0e0>\r\n # Answer\u7c7b\u5bf9\u8c61\r\n print top_answers \r\n # \u8f93\u51fa\uff1a<generator object get_top_i_answers at 0x7fed676eb320>\r\n # \u4ee3\u8868\u524d\u5341\u7684Answer\u7684\u751f\u6210\u5668\r\n print answers \r\n # \u8f93\u51fa\uff1a<generator object get_all_answer at 0x7f8b66ba30a0>\r\n # \u4ee3\u8868\u6240\u6709Answer\u7684\u751f\u6210\u5668\r\n\r\n \r\nAnswer\uff1a\u83b7\u53d6\u7b54\u6848\u4fe1\u606f\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n\r\nAnswer \u4ee3\u8868\u4e86\u4e00\u4e2a\u7b54\u6848\uff0c\u5904\u7406\u77e5\u4e4e\u7b54\u6848\u76f8\u5173\u64cd\u4f5c\u3002\u521b\u5efa\u4e00\u4e2a Answer \u5bf9\u8c61\u9700\u4f20\u5165\u8be5\u7b54\u6848\u7684 url \uff0c\u5982\uff1a\r\n\r\n.. code-block:: python\r\n\r\n from zhihu import Answer\r\n \r\n answer_url = \"http://www.zhihu.com/question/24269892/answer/29960616\"\r\n answer = Answer(answer_url)\r\n\r\n\u5f97\u5230 Answer \u5bf9\u8c61\u540e\uff0c\u53ef\u4ee5\u83b7\u53d6\u8be5\u7b54\u6848\u7684\u4e00\u4e9b\u4fe1\u606f\uff1a\r\n\r\n.. code-block:: python\r\n \r\n # -*- coding: utf-8 -*-\r\n from zhihu import Answer\r\n \r\n answer_url = \"http://www.zhihu.com/question/24269892/answer/29960616\"\r\n answer = Answer(answer_url)\r\n # \u83b7\u53d6\u8be5\u7b54\u6848\u56de\u7b54\u7684\u95ee\u9898\r\n question = answer.get_question()\r\n # \u83b7\u53d6\u8be5\u7b54\u6848\u7684\u4f5c\u8005\r\n author = answer.get_author()\r\n # \u83b7\u53d6\u8be5\u7b54\u6848\u83b7\u5f97\u7684\u8d5e\u540c\u6570\r\n upvote = answer.get_upvote()\r\n # \u83b7\u53d6\u8be5\u7b54\u6848\u6240\u5c5e\u95ee\u9898\u88ab\u6d4f\u89c8\u6b21\u6570\r\n visit_times = answer.get_visit_times()\r\n # \u83b7\u53d6\u6240\u6709\u7ed9\u8be5\u7b54\u6848\u70b9\u8d5e\u7684\u7528\u6237\u4fe1\u606f\r\n voters = answer.get_voters()\r\n # \u628a\u7b54\u6848\u8f93\u51fa\u4e3atxt\u6587\u4ef6\r\n answer.to_txt()\r\n # \u628a\u7b54\u6848\u8f93\u51fa\u4e3amarkdown\u6587\u4ef6\r\n answer.to_md()\r\n\r\n print question\r\n # <zhihu.Question instance at 0x7f0b25d13f80>\r\n # \u4e00\u4e2aQuestion\u5bf9\u8c61\r\n print question.get_title() # \u8f93\u51fa\uff1a\u73b0\u5b9e\u53ef\u4ee5\u6709\u591a\u7f8e\u597d\uff1f\r\n print author\r\n # <zhihu.User instance at 0x7f0b25425b90>\r\n # \u4e00\u4e2aUser\u5bf9\u8c61\r\n print voters \r\n # <generator object get_voters at 0x7f32fbe55730>\r\n # \u4ee3\u8868\u6240\u6709\u8be5\u7b54\u6848\u70b9\u8d5e\u7684\u7528\u6237\u7684\u751f\u6210\u5668\r\n print author.get_user_id() # \u8f93\u51fa\uff1a\u7530\u6d69\r\n print upvote # \u8f93\u51fa\uff1a9320\r\n print visit_times # \u8f93\u51fa: \u6539\u7b54\u6848\u6240\u5c5e\u95ee\u9898\u88ab\u6d4f\u89c8\u6b21\u6570\r\n\r\n\r\nUser\uff1a\u83b7\u53d6\u7528\u6237\u4fe1\u606f\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n\r\nUser \u4ee3\u8868\u4e00\u4e2a\u7528\u6237\uff0c\u5904\u7406\u7528\u6237\u76f8\u5173\u64cd\u4f5c\u3002\u521b\u5efa\u4e00\u4e2a User \u5bf9\u8c61\u9700\u4f20\u5165\u8be5\u7528\u6237\u7684 url \uff0c\u5982\uff1a\r\n\r\n.. code-block:: python\r\n \r\n from zhihu import User\r\n \r\n user_url = \"http://www.zhihu.com/people/jixin\"\r\n user = User(user_url)\r\n\r\n\u5f97\u5230 User \u5bf9\u8c61\u540e\uff0c\u53ef\u4ee5\u83b7\u53d6\u8be5\u7528\u6237\u7684\u4e00\u4e9b\u4fe1\u606f\uff1a\r\n\r\n.. code-block:: python\r\n \r\n # -*- coding: utf-8 -*-\r\n from zhihu import User\r\n \r\n user_url = \"http://www.zhihu.com/people/jixin\"\r\n user = User(user_url)\r\n # \u83b7\u53d6\u7528\u6237ID\r\n user_id = user.get_user_id()\r\n # \u83b7\u53d6\u8be5\u7528\u6237\u7684\u5173\u6ce8\u8005\u4eba\u6570\r\n followers_num = user.get_followers_num()\r\n # \u83b7\u53d6\u8be5\u7528\u6237\u5173\u6ce8\u7684\u4eba\u6570\r\n followees_num =user.get_followees_num()\r\n # \u83b7\u53d6\u8be5\u7528\u6237\u63d0\u95ee\u7684\u4e2a\u6570\r\n asks_num = user.get_asks_num()\r\n # \u83b7\u53d6\u8be5\u7528\u6237\u56de\u7b54\u7684\u4e2a\u6570\r\n answers_num = user.get_answers_num()\r\n # \u83b7\u53d6\u8be5\u7528\u6237\u6536\u85cf\u5939\u4e2a\u6570\r\n collections_num = user.get_collections_num()\r\n # \u83b7\u53d6\u8be5\u7528\u6237\u83b7\u5f97\u7684\u8d5e\u540c\u6570\r\n agree_num = user.get_agree_num()\r\n # \u83b7\u53d6\u8be5\u7528\u6237\u83b7\u5f97\u7684\u611f\u8c22\u6570\r\n thanks_num = user.get_thanks_num()\r\n \r\n # \u83b7\u53d6\u8be5\u7528\u6237\u5173\u6ce8\u7684\u4eba\r\n followees = user.get_followees()\r\n # \u83b7\u53d6\u5173\u6ce8\u8be5\u7528\u6237\u7684\u4eba\r\n followers = user.get_followers()\r\n # \u83b7\u53d6\u8be5\u7528\u6237\u63d0\u7684\u95ee\u9898\r\n asks = user.get_asks()\r\n # \u83b7\u53d6\u8be5\u7528\u6237\u56de\u7b54\u7684\u95ee\u9898\u7684\u7b54\u6848\r\n answers = user.get_answers()\r\n # \u83b7\u53d6\u8be5\u7528\u6237\u7684\u6536\u85cf\u5939\r\n collections = user.get_collections()\r\n \r\n print user_id # \u9ec4\u7ee7\u65b0\r\n print followers_num # 614840\r\n print followees_num # 8408\r\n print asks_num # 1323\r\n print answers_num # 786\r\n print collections_num # 44\r\n print agree_num # 46387\r\n print thanks_num # 11477\r\n \r\n print followees\r\n # <generator object get_followee at 0x7ffcac3af050>\r\n # \u4ee3\u8868\u6240\u6709\u8be5\u7528\u6237\u5173\u6ce8\u7684\u4eba\u7684\u751f\u6210\u5668\u5bf9\u8c61\r\n print followers\r\n # <generator object get_follower at 0x7ffcac3af0f0>\r\n # \u4ee3\u8868\u6240\u6709\u5173\u6ce8\u8be5\u7528\u6237\u7684\u4eba\u7684\u751f\u6210\u5668\u5bf9\u8c61\r\n print asks\r\n # <generator object get_ask at 0x7ffcab9db780>\r\n # \u4ee3\u8868\u8be5\u7528\u6237\u63d0\u7684\u6240\u6709\u95ee\u9898\u7684\u751f\u6210\u5668\u5bf9\u8c61\r\n print answers\r\n # <generator object get_answer at 0x7ffcab9db7d0>\r\n # \u4ee3\u8868\u8be5\u7528\u6237\u56de\u7b54\u7684\u6240\u6709\u95ee\u9898\u7684\u7b54\u6848\u7684\u751f\u6210\u5668\u5bf9\u8c61\r\n print collections\r\n # <generator object get_collection at 0x7ffcab9db820>\r\n # \u4ee3\u8868\u8be5\u7528\u6237\u6536\u85cf\u5939\u7684\u751f\u6210\u5668\u5bf9\u8c61\r\n\r\n\r\nCollection\uff1a\u83b7\u53d6\u6536\u85cf\u5939\u4fe1\u606f\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n\r\nCollection \u4ee3\u8868\u4e00\u4e2a\u6536\u85cf\u5939\uff0c\u5904\u7406\u6536\u85cf\u5939\u76f8\u5173\u64cd\u4f5c\u3002\u521b\u5efa\u4e00\u4e2a Collection \u5bf9\u8c61\u9700\u4f20\u5165\u8be5\u6536\u85cf\u5939\u7684 url \uff0c\u5982\uff1a\r\n\r\n.. code-block:: python\r\n\r\n from zhihu import Collection\r\n \r\n collection_url = \"http://www.zhihu.com/collection/36750683\"\r\n collection = Collection(collection_url)\r\n\r\n\u5f97\u5230 Collection \u5bf9\u8c61\u540e\uff0c\u53ef\u4ee5\u83b7\u53d6\u8be5\u6536\u85cf\u5939\u7684\u4e00\u4e9b\u4fe1\u606f\uff1a\r\n\r\n.. code-block:: python\r\n \r\n # -*- coding: utf-8 -*-\r\n from zhihu import Collection\r\n \r\n collection_url = \"http://www.zhihu.com/collection/36750683\"\r\n collection = Collection(collection_url)\r\n \r\n # \u83b7\u53d6\u8be5\u6536\u85cf\u5939\u7684\u521b\u5efa\u8005\r\n creator = collection.get_creator()\r\n # \u83b7\u53d6\u8be5\u6536\u85cf\u5939\u7684\u540d\u5b57\r\n name = collection.get_name()\r\n # \u83b7\u53d6\u8be5\u6536\u85cf\u5939\u4e0b\u7684\u524d\u5341\u4e2a\u7b54\u6848\r\n top_answers = collection.get_top_i_answers(10)\r\n # \u83b7\u53d6\u8be5\u6536\u85cf\u5939\u4e0b\u7684\u6240\u6709\u7b54\u6848\r\n answers = collection.get_all_answers()\r\n \r\n print creator \r\n # <zhihu.User instance at 0x7fe1296f29e0>\r\n # \u4e00\u4e2aUser\u5bf9\u8c61\r\n print creator.get_user_id() # \u7a37\u9ecd\r\n print name # \u7ed9\u4f60\u4e00\u4e2a\u4e0d\u540c\u7684\u89c6\u89d2\r\n print top_answers\r\n # <generator object get_top_i_answers at 0x7f378465dc80>\r\n # \u4ee3\u8868\u524d\u5341\u4e2a\u7b54\u6848\u7684\u751f\u6210\u5668\u5bf9\u8c61\r\n print answers \r\n # <generator object get_all_answer at 0x7fe12a29b280>\r\n # \u4ee3\u8868\u6240\u6709\u7b54\u6848\u7684\u751f\u6210\u5668\u5bf9\u8c61\r\n \r\n\r\n\u7efc\u5408\u5b9e\u4f8b\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n\r\n\u5c06 Question \uff0c Answer \uff0c User \uff0c Collection \u7ed3\u5408\u8d77\u6765\u4f7f\u7528\u3002\u5b9e\u4f8b\u5982\u4e0b\uff1a\r\n\r\n.. code-block:: python\r\n\r\n # -*- coding: utf-8 -*-\r\n from zhihu import Question\r\n from zhihu import Answer\r\n from zhihu import User\r\n from zhihu import Collection\r\n \r\n url = \"http://www.zhihu.com/question/24269892\"\r\n question = Question(url)\r\n # \u5f97\u5230\u6392\u540d\u7b2c\u4e00\u7684\u7b54\u6848\r\n answer = question.get_top_answer()\r\n # \u5f97\u5230\u6392\u540d\u7b2c\u4e00\u7684\u7b54\u6848\u7684\u4f5c\u8005\r\n user = answer.get_author()\r\n # \u5f97\u5230\u8be5\u4f5c\u8005\u56de\u7b54\u8fc7\u7684\u6240\u6709\u95ee\u9898\u7684\u7b54\u6848\r\n user_answers = user.get_answers()\r\n # \u8f93\u51fa\u8be5\u4f5c\u8005\u56de\u7b54\u8fc7\u7684\u6240\u6709\u95ee\u9898\u7684\u6807\u9898\r\n for answer in user_answers:\r\n print answer.get_question().get_title()\r\n # \u5f97\u5230\u8be5\u7528\u6237\u7684\u6240\u6709\u6536\u85cf\u5939\r\n user_collections = user.get_collections()\r\n for collection in user_collections:\r\n\t# \u8f93\u51fa\u6bcf\u4e00\u4e2a\u6536\u85cf\u5939\u7684\u540d\u5b57\r\n print collection.get_name()\r\n\t# \u5f97\u5230\u8be5\u6536\u85cf\u5939\u4e0b\u7684\u524d\u5341\u4e2a\u56de\u7b54\r\n top_answers = collection.get_top_i_answers(10)\r\n\t# \u628a\u7b54\u6848\u5185\u5bb9\u8f6c\u6210txt\uff0cmarkdown\r\n for answer in top_answers:\r\n answer.to_txt()\r\n answer.to_md()\r\n\r\n\u4ee5\u4e0a\u793a\u4f8b\u5747\u53ef\u4ee5\u5728test.py\u6587\u4ef6\u4e2d\u627e\u5230\u3002\r\n\r\n\u867d\u7136\u662f\u5355\u7ebf\u7a0b\uff0c\u4f46\u901f\u5ea6\u4e0d\u7b97\u592a\u6162\u3002\u6293\u53d6 `\u54ea\u4e9b\u4e1c\u897f\u4e70\u4e86\u4e4b\u540e\uff0c\u4f1a\u8ba9\u4eba\u56e0\u751f\u6d3b\u8d28\u91cf\u548c\u5e78\u798f\u611f\u63d0\u5347\u800c\u611f\u89c9\u76f8\u89c1\u6068\u665a\uff1f <http://www.zhihu.com/question/20840874>`_ \u4e0b\u524d200\u4e2a\u56de\u7b54\uff0c91\u79d2\uff1b\u6293\u53d6 `\u6709\u54ea\u4e9b 100 \u5143\u4ee5\u4e0b\uff0c\u5f88\u5c11\u89c1\u4f46\u9ad8\u5927\u4e0a\u7684\u7269\u4ef6\uff1f <http://www.zhihu.com/question/23054572>`_ \u4e0b\u524d50\u4e2a\u56de\u7b54\uff0c48\u79d2\uff1b\u6293\u53d6 `\u73b0\u5b9e\u53ef\u4ee5\u6709\u591a\u7f8e\u597d\uff1f <http://www.zhihu.com/question/24269892>`_ \u4e0b\u524d200\u4e2a\u56de\u7b54\uff0c69\u79d2\u3002\u751f\u6210\u7684\u6587\u4ef6\u8bf7\u89c1markdown\uff0ctext\u6587\u4ef6\u5939\u3002\u6240\u6709\u533f\u540d\u7528\u6237\u7684\u56de\u7b54\u653e\u5728\u4e00\u4e2a\u6587\u4ef6\u91cc\u9762\u3002\r\n\r\n\r\nAPI\r\n-------\r\n\r\nzhihu.Question ---- \u77e5\u4e4e\u95ee\u9898\u64cd\u4f5c\u7c7b\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n\r\n*class* zhihu. **Question** (*url, title = None*)\r\n\r\n Question \u4ee5 url \u4e3a\u552f\u4e00\u6807\u8bc6\uff0c\u521b\u5efa\u4e00\u4e2a Question \u5bf9\u8c61\u5b9e\u4f8b\u5fc5\u987b\u4f20\u5165\u4e00\u4e2a\u4ee3\u8868\u77e5\u4e4e\u95ee\u9898\u7684 url \uff08\u5982\uff1a http://www.zhihu.com/question/26611428\uff09\uff0c\u9700\u5305\u542b\u201chttp://\u201d\u3002\u5982\u679c\u4f20\u5165\u7684\u4e0d\u662f\u4ee3\u8868\u95ee\u9898\u7684 url \uff0c\u7a0b\u5e8f\u4f1a\u62a5\u9519\u3002\u901a\u8fc7\u8c03\u7528 Question \u7c7b\u7684\u4e00\u7cfb\u5217\u65b9\u6cd5\uff0c\u83b7\u5f97\u8be5\u95ee\u9898\u7684\u4e00\u4e9b\u4fe1\u606f\u3002\r\n \r\n **Parameters**\uff1a\r\n * **url** -- \u8be5\u95ee\u9898\u7684\u94fe\u63a5\uff0c\u5b57\u7b26\u4e32\r\n * **title** -- \u8be5\u95ee\u9898\u7684\u6807\u9898\uff0c\u5b57\u7b26\u4e32\uff0c\u53ef\u9009\r\n \r\n **Returns**\uff1a \u4e00\u4e2a Question \u5b9e\u4f8b\u5bf9\u8c61\r\n \r\n **get_title** ()\r\n \r\n \u5f97\u5230\u8be5\u95ee\u9898\u7684\u6807\u9898\u3002\r\n \r\n **Returns**\uff1a \u4ee3\u8868\u6807\u9898\u7684\u5b57\u7b26\u4e32\r\n \r\n **get_detail** ()\r\n \r\n \u5f97\u5230\u8be5\u95ee\u9898\u7684\u8be6\u7ec6\u63cf\u8ff0\u3002\u539f\u95ee\u9898\u7684\u63cf\u8ff0\u53ef\u80fd\u5e26\u6709\u56fe\u7247\u6216\u89c6\u9891\uff0c\u8fd9\u91cc\u5f97\u5230\u7684\u662f\u7eaf\u6587\u5b57\u3002\r\n \r\n **Returns**\uff1a \u4ee3\u8868\u8be6\u7ec6\u63cf\u8ff0\u7684\u5b57\u7b26\u4e32\r\n \r\n **get_answers_num** ()\r\n \r\n \u5f97\u5230\u8be5\u95ee\u9898\u7684\u56de\u7b54\u4e2a\u6570\u3002\r\n \r\n **Returns**\uff1a \u4ee3\u8868\u56de\u7b54\u4e2a\u6570\u7684 int \u578b\u6574\u6570\r\n \r\n **get_followers_num** ()\r\n \r\n \u5f97\u5230\u5173\u6ce8\u8be5\u95ee\u9898\u7684\u4eba\u6570\u3002\r\n \r\n **Returns**\uff1a \u4ee3\u8868\u4eba\u6570\u7684 int \u578b\u6574\u6570\r\n \r\n **get_topics** ()\r\n \r\n \u5f97\u5230\u8be5\u95ee\u9898\u6240\u5c5e\u7684\u8bdd\u9898\u3002\r\n \r\n **Returns**\uff1a \u4e00\u4e2a list \uff0c\u6bcf\u4e00\u4e2a\u5143\u7d20\u4e3a\u4ee3\u8868\u4e00\u4e2a\u8bdd\u9898\u7684\u5b57\u7b26\u4e32\r\n \r\n \u6ce8\uff1a\u4ee5\u540e\u53ef\u80fd\u4f1a\u6dfb\u52a0\u4e00\u4e2a Topic \u7c7b\uff0c\u5230\u65f6\u5019\u6bcf\u4e00\u4e2a\u5143\u7d20\u4e3a\u4ee3\u8868\u4e00\u4e2a\u8bdd\u9898\u7684 Topic \u7c7b\u5bf9\u8c61\u3002\r\n \r\n **get_all_answers** ()\r\n \r\n \u5f97\u5230\u8be5\u95ee\u9898\u7684\u6240\u6709\u56de\u7b54\u3002\r\n \r\n **Returns**\uff1a \u5305\u542b\u6240\u6709\u7b54\u6848\u7684 generator \u5bf9\u8c61\u3002\u5176\u4e2d\u6bcf\u4e00\u4e2a\u5143\u7d20\u4e3a\u4ee3\u8868\u4e00\u4e2a\u7b54\u6848\u7684 Answer \u5bf9\u8c61 \r\n \r\n **get_top_i_answers** (n)\r\n \r\n \u5f97\u5230\u8be5\u95ee\u9898\u7684\u524d n \u4e2a\u56de\u7b54\u3002\r\n \r\n **Parameters**\uff1a **n** -- int \u578b\u6574\u6570\r\n \r\n **Returns**\uff1a \u5305\u542b\u524d n \u4e2a\u7b54\u6848\u7684 generator \u5bf9\u8c61\u3002\u5176\u4e2d\u6bcf\u4e00\u4e2a\u5143\u7d20\u4e3a\u4ee3\u8868\u4e00\u4e2a\u7b54\u6848\u7684 Answer \u5bf9\u8c61\r\n \r\n **get_top_answer** ()\r\n \r\n \u5f97\u5230\u76ee\u524d\u6392\u540d\u7b2c\u4e00\u7684\u56de\u7b54\u3002\r\n \r\n **Returns**\uff1a \u4ee3\u8868\u8be5\u7b54\u6848\u7684 Answer \u5bf9\u8c61\r\n \r\n **get_visit_times** ()\r\n \r\n \u5f97\u5230\u8be5\u95ee\u9898\u88ab\u6d4f\u89c8\u6b21\u6570\u3002\u8be5\u65b9\u6cd5\u7531 `@lufo816 <https://github.com/lufo816>`_ \u6dfb\u52a0\u3002\r\n \r\n **Returns**\uff1a \u4ee3\u8868\u6d4f\u89c8\u6b21\u6570\u7684 int \u578b\u6574\u6570\r\n \r\n\r\nzhihu.User ---- \u77e5\u4e4e\u7528\u6237\u64cd\u4f5c\u7c7b\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n\r\n*class* zhihu. **User** (*user_url, user_id = None*)\r\n\r\n User \u4ee5 url \u4e3a\u552f\u4e00\u6807\u8bc6\uff0c\u521b\u5efa\u4e00\u4e2a User \u5bf9\u8c61\u5b9e\u4f8b\u5fc5\u987b\u4f20\u5165\u4e00\u4e2a\u4ee3\u8868\u77e5\u4e4e\u7528\u6237\u7684 url \uff08\u5982\uff1a http://www.zhihu.com/people/egrcc\uff09\uff0c\u9700\u5305\u542b\u201chttp://\u201d\u3002\u5982\u679c\u4f20\u5165\u7684\u4e0d\u662f\u4ee3\u8868\u7528\u6237\u7684 url \uff0c\u7a0b\u5e8f\u4f1a\u62a5\u9519\u3002\u901a\u8fc7\u8c03\u7528 User \u7c7b\u7684\u4e00\u7cfb\u5217\u65b9\u6cd5\uff0c\u83b7\u5f97\u8be5\u7528\u6237\u7684\u4e00\u4e9b\u4fe1\u606f\u3002\r\n \r\n **Parameters**\uff1a\r\n * **user_url** -- \u8be5\u7528\u6237\u7684\u94fe\u63a5\uff0c\u5b57\u7b26\u4e32\r\n * **user_id** -- \u8be5\u7528\u6237\u7684 ID \uff0c\u5b57\u7b26\u4e32\uff0c\u53ef\u9009\r\n \r\n **Returns**\uff1a \u4e00\u4e2a User \u5b9e\u4f8b\u5bf9\u8c61\r\n\r\n **get_user_id** ()\r\n \r\n \u5f97\u5230\u8be5\u7528\u6237\u7684ID\u3002\r\n \r\n **Returns**\uff1a \u4ee3\u8868 ID \u7684\u5b57\u7b26\u4e32\r\n \r\n **get_followees_num** ()\r\n \r\n \u5f97\u5230\u8be5\u7528\u6237\u5173\u6ce8\u7684\u4eba\u7684\u4e2a\u6570\u3002\r\n \r\n **Returns**\uff1a \u4ee3\u8868\u4eba\u6570\u7684 int \u578b\u6574\u6570\r\n \r\n **get_followers_num** ()\r\n \r\n \u5f97\u5230\u5173\u6ce8\u8be5\u7528\u6237\u7684\u4eba\u7684\u4e2a\u6570\u3002\r\n \r\n **Returns**\uff1a \u4ee3\u8868\u4eba\u6570\u7684 int \u578b\u6574\u6570\r\n \r\n **get_agree_num** ()\r\n \r\n \u5f97\u5230\u8be5\u7528\u6237\u83b7\u5f97\u7684\u8d5e\u540c\u6570\u3002\r\n \r\n **Returns**\uff1a \u4ee3\u8868\u8d5e\u540c\u6570\u7684 int \u578b\u6574\u6570\r\n \r\n **get_thanks_num** ()\r\n \r\n \u5f97\u5230\u8be5\u7528\u6237\u83b7\u5f97\u7684\u611f\u8c22\u6570\u3002\r\n \r\n **Returns**\uff1a \u4ee3\u8868\u611f\u8c22\u6570\u7684 int \u578b\u6574\u6570\r\n \r\n **get_asks_num** ()\r\n \r\n \u5f97\u5230\u8be5\u7528\u6237\u63d0\u95ee\u9898\u7684\u4e2a\u6570\u3002\r\n \r\n **Returns**\uff1a \u4ee3\u8868\u95ee\u9898\u6570\u7684 int \u578b\u6574\u6570 \r\n \r\n **get_answers_num** ()\r\n \r\n \u5f97\u5230\u8be5\u7528\u6237\u56de\u7b54\u95ee\u9898\u7684\u4e2a\u6570\u3002\r\n \r\n **Returns**\uff1a \u4ee3\u8868\u95ee\u9898\u6570\u7684 int \u578b\u6574\u6570 \r\n \r\n **get_collections_num** ()\r\n \r\n \u5f97\u5230\u8be5\u7528\u6237\u6536\u85cf\u5939\u7684\u4e2a\u6570\u3002\r\n \r\n **Returns**\uff1a \u4ee3\u8868\u6536\u85cf\u5939\u6570\u7684 int \u578b\u6574\u6570 \r\n \r\n **get_followees** ()\r\n \r\n \u5f97\u5230\u8be5\u7528\u6237\u5173\u6ce8\u7684\u4eba\u3002\r\n \r\n **Returns**\uff1a \u5305\u542b\u6240\u6709\u8be5\u7528\u6237\u5173\u6ce8\u7684\u4eba\u7684 generator \u5bf9\u8c61\u3002\u5176\u4e2d\u6bcf\u4e00\u4e2a\u5143\u7d20\u4e3a\u4ee3\u8868\u4e00\u4e2a\u7528\u6237\u7684 User \u5bf9\u8c61\r\n \r\n **get_followers** ()\r\n \r\n \u5f97\u5230\u5173\u6ce8\u8be5\u7528\u6237\u7684\u4eba\u3002\r\n \r\n **Returns**\uff1a \u5305\u542b\u6240\u6709\u5173\u6ce8\u8be5\u7528\u6237\u7684\u4eba\u7684 generator \u5bf9\u8c61\u3002\u5176\u4e2d\u6bcf\u4e00\u4e2a\u5143\u7d20\u4e3a\u4ee3\u8868\u4e00\u4e2a\u7528\u6237\u7684 User \u5bf9\u8c61\r\n \r\n **get_asks** ()\r\n \r\n \u5f97\u5230\u8be5\u7528\u6237\u63d0\u7684\u6240\u6709\u95ee\u9898\u3002\r\n \r\n **Returns**\uff1a \u5305\u542b\u6240\u6709\u95ee\u9898\u7684 generator \u5bf9\u8c61\u3002\u5176\u4e2d\u6bcf\u4e00\u4e2a\u5143\u7d20\u4e3a\u4ee3\u8868\u4e00\u4e2a\u95ee\u9898\u7684 Question \u5bf9\u8c61\r\n \r\n **get_answers** ()\r\n \r\n \u5f97\u5230\u8be5\u7528\u6237\u56de\u7b54\u7684\u6240\u6709\u95ee\u9898\u7684\u7b54\u6848\u3002\r\n \r\n **Returns**\uff1a \u5305\u542b\u6240\u6709\u56de\u7b54\u7684 generator \u5bf9\u8c61\u3002\u5176\u4e2d\u6bcf\u4e00\u4e2a\u5143\u7d20\u4e3a\u4ee3\u8868\u4e00\u4e2a\u56de\u7b54\u7684 Answer \u5bf9\u8c61\r\n \r\n **get_collections** ()\r\n \r\n \u5f97\u5230\u8be5\u7528\u6237\u7684\u6240\u6709\u6536\u85cf\u5939\u3002\r\n \r\n **Returns**\uff1a \u5305\u542b\u6240\u6709\u6536\u85cf\u5939\u7684 generator \u5bf9\u8c61\u3002\u5176\u4e2d\u6bcf\u4e00\u4e2a\u5143\u7d20\u4e3a\u4ee3\u8868\u4e00\u4e2a\u6536\u85cf\u5939\u7684 Collection \u5bf9\u8c61\r\n \r\n\r\nzhihu.Answer ---- \u77e5\u4e4e\u56de\u7b54\u64cd\u4f5c\u7c7b\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n\r\n*class* zhihu. **Answer** (*answer_url, question = None, author = None, upvote = None, content = None*)\r\n\r\n Answer \u4ee5 url \u4e3a\u552f\u4e00\u6807\u8bc6\uff0c\u521b\u5efa\u4e00\u4e2a Answer \u5bf9\u8c61\u5b9e\u4f8b\u5fc5\u987b\u4f20\u5165\u4e00\u4e2a\u4ee3\u8868\u77e5\u4e4e\u56de\u7b54\u7684 url \uff08\u5982\uff1a http://www.zhihu.com/question/19878575/answer/14776495\uff09\uff0c\u9700\u5305\u542b\u201chttp://\u201d\u3002\u5982\u679c\u4f20\u5165\u7684\u4e0d\u662f\u4ee3\u8868\u56de\u7b54\u7684 url \uff0c\u7a0b\u5e8f\u4f1a\u62a5\u9519\u3002\u901a\u8fc7\u8c03\u7528 Answer \u7c7b\u7684\u4e00\u7cfb\u5217\u65b9\u6cd5\uff0c\u83b7\u5f97\u8be5\u56de\u7b54\u7684\u4e00\u4e9b\u4fe1\u606f\u3002\u4e00\u822c\u4e0d\u81ea\u5df1\u521b\u5efaAnswer\u5bf9\u8c61\u3002\r\n \r\n **Parameters**\uff1a\r\n * **answer_url** -- \u8be5\u7b54\u6848\u7684\u94fe\u63a5\uff0c\u5b57\u7b26\u4e32\r\n * **question** -- \u8be5\u7b54\u6848\u56de\u7b54\u7684\u95ee\u9898\uff0c Question \u5bf9\u8c61\uff0c\u53ef\u9009\r\n * **author** -- \u8be5\u7b54\u6848\u7684\u4f5c\u8005\uff0c User \u5bf9\u8c61\uff0c\u53ef\u9009\r\n * **upvote** -- \u8be5\u7b54\u6848\u83b7\u5f97\u7684\u8d5e\u540c\u6570\uff0c int \u578b\u6574\u6570\uff0c\u53ef\u9009\r\n * **content** -- \u8be5\u7b54\u6848\u7684\u5185\u5bb9\uff0c BeautifulSoup \u5bf9\u8c61\uff0c\u53ef\u9009\r\n \r\n **Returns**\uff1a \u4e00\u4e2a Answer \u5b9e\u4f8b\u5bf9\u8c61\r\n\r\n **get_question** ()\r\n \r\n \u5f97\u5230\u8be5\u7b54\u6848\u56de\u7b54\u7684\u95ee\u9898\u3002\r\n \r\n **Returns**\uff1a \u4e00\u4e2a Question \u5bf9\u8c61\r\n \r\n **get_author** ()\r\n \r\n \u5f97\u5230\u8be5\u7b54\u6848\u7684\u4f5c\u8005 \u3002\r\n \r\n **Returns**\uff1a \u4e00\u4e2a User \u5bf9\u8c61\r\n \r\n **get_upvote** ()\r\n \r\n \u5f97\u5230\u8be5\u7b54\u6848\u83b7\u5f97\u7684\u8d5e\u540c\u6570\u3002\r\n \r\n **Returns**\uff1a \u4e00\u4e2a int \u578b\u6574\u6570\r\n \r\n **get_content** ()\r\n \r\n \u5f97\u5230\u8be5\u7b54\u6848\u7684\u5185\u5bb9\u3002\r\n \r\n **Returns**\uff1a \u4e00\u4e2a BeautifulSoup \u5bf9\u8c61\r\n \r\n **get_visit_times** ()\r\n \r\n \u5f97\u5230\u8be5\u7b54\u6848\u6240\u5c5e\u95ee\u9898\u88ab\u6d4f\u89c8\u6b21\u6570\u3002\u8be5\u65b9\u6cd5\u7531 `@lufo816 <https://github.com/lufo816>`_ \u6dfb\u52a0\u3002\r\n \r\n **Returns**\uff1a \u4ee3\u8868\u6d4f\u89c8\u6b21\u6570\u7684 int \u578b\u6574\u6570\r\n \r\n **get_voters** ()\r\n \r\n \u5f97\u5230\u7ed9\u8be5\u7b54\u6848\u70b9\u8d5e\u7684\u7528\u6237\u3002\u8be5\u65b9\u6cd5\u7531 `@lufo816 <https://github.com/lufo816>`_ \u6dfb\u52a0\u3002\r\n \r\n **Returns**\uff1a \u5305\u542b\u6240\u6709\u7ed9\u8be5\u7b54\u6848\u70b9\u8d5e\u7684\u7528\u6237\u7684 generator \u5bf9\u8c61\u3002\u5176\u4e2d\u6bcf\u4e00\u4e2a\u5143\u7d20\u4e3a\u4ee3\u8868\u4e00\u4e2a\u7528\u6237\u7684 User \u5bf9\u8c61\r\n \r\n **to_txt** ()\r\n \r\n \u5c06\u8be5\u7b54\u6848\u8f6c\u6210txt\u6587\u4ef6\uff0c\u5e76\u4f1a\u5728\u5f53\u524d\u76ee\u5f55\u4e0b\u521b\u5efa\u4e00\u4e2atext\u6587\u4ef6\u5939\uff0c\u6240\u751f\u6210\u7684txt\u6587\u4ef6\u5747\u4fdd\u5b58\u5728\u8be5\u6587\u4ef6\u5939\u3002\r\n \r\n **to_md** ()\r\n \r\n \u5c06\u8be5\u7b54\u6848\u8f6c\u6210markdown\u6587\u4ef6\uff0c\u5e76\u4f1a\u5728\u5f53\u524d\u76ee\u5f55\u4e0b\u521b\u5efa\u4e00\u4e2amarkdown\u6587\u4ef6\u5939\uff0c\u6240\u751f\u6210\u7684markdown\u6587\u4ef6\u5747\u4fdd\u5b58\u5728\u8be5\u6587\u4ef6\u5939\u3002\r\n\r\n\r\nzhihu.Collection ---- \u77e5\u4e4e\u6536\u85cf\u5939\u64cd\u4f5c\u7c7b\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n\r\n*class* zhihu. **Collection** (*url, name = None, creator = None*)\r\n\r\n Collection \u4ee5 url \u4e3a\u552f\u4e00\u6807\u8bc6\uff0c\u521b\u5efa\u4e00\u4e2a Collection \u5bf9\u8c61\u5b9e\u4f8b\u5fc5\u987b\u4f20\u5165\u4e00\u4e2a\u4ee3\u8868\u77e5\u4e4e\u6536\u85cf\u5939\u7684 url \uff08\u5982\uff1a http://www.zhihu.com/collection/27053469\uff09\uff0c\u9700\u5305\u542b\u201chttp://\u201d\u3002\u5982\u679c\u4f20\u5165\u7684\u4e0d\u662f\u4ee3\u8868\u6536\u85cf\u5939\u7684 url \uff0c\u7a0b\u5e8f\u4f1a\u62a5\u9519\u3002\u901a\u8fc7\u8c03\u7528 Collection \u7c7b\u7684\u4e00\u7cfb\u5217\u65b9\u6cd5\uff0c\u83b7\u5f97\u8be5\u6536\u85cf\u5939\u7684\u4e00\u4e9b\u4fe1\u606f\u3002\r\n \r\n **Parameters**\uff1a\r\n * **url** -- \u8be5\u6536\u85cf\u5939\u7684\u94fe\u63a5\uff0c\u5b57\u7b26\u4e32\r\n * **name** -- \u8be5\u6536\u85cf\u5939\u7684\u540d\u5b57\uff0c\u5b57\u7b26\u4e32\uff0c\u53ef\u9009\r\n * **creator** -- \u8be5\u6536\u85cf\u5939\u7684\u521b\u5efa\u8005\uff0cUser \u5bf9\u8c61\uff0c\u53ef\u9009\r\n \r\n **Returns**\uff1a \u4e00\u4e2a Collection \u5b9e\u4f8b\u5bf9\u8c61\r\n\r\n **get_name** ()\r\n \r\n \u5f97\u5230\u8be5\u6536\u85cf\u5939\u7684\u540d\u5b57\u3002\r\n \r\n **Returns**\uff1a \u4ee3\u8868\u540d\u5b57\u7684\u5b57\u7b26\u4e32\r\n \r\n **get_creator** ()\r\n \r\n \u5f97\u5230\u8be5\u6536\u85cf\u5939\u7684\u521b\u5efa\u8005\u3002\r\n \r\n **Returns**\uff1a\u4ee3\u8868\u521b\u5efa\u8005 User \u5bf9\u8c61\r\n \r\n **get_all_answers** ()\r\n \r\n \u5f97\u5230\u8be5\u6536\u85cf\u5939\u6536\u85cf\u7684\u6240\u6709\u56de\u7b54\u3002\r\n \r\n **Returns**\uff1a \u5305\u542b\u8be5\u6536\u85cf\u5939\u4e0b\u6240\u6709\u56de\u7b54\u7684 generator \u5bf9\u8c61\u3002\u5176\u4e2d\u6bcf\u4e00\u4e2a\u5143\u7d20\u4e3a\u4ee3\u8868\u4e00\u4e2a\u56de\u7b54\u7684 Answer \u5bf9\u8c61\r\n \r\n **get_top_i_answers** (n)\r\n \r\n \u5f97\u5230\u8be5\u6536\u85cf\u5939\u6536\u85cf\u7684\u524d n \u4e2a\u56de\u7b54\u3002\r\n \r\n **Parameters**\uff1a **n** -- int \u578b\u6574\u6570\r\n \r\n **Returns**\uff1a \u5305\u542b\u8be5\u6536\u85cf\u5939\u4e0b\u524d n \u4e2a\u56de\u7b54\u7684 generator \u5bf9\u8c61\u3002\u5176\u4e2d\u6bcf\u4e00\u4e2a\u5143\u7d20\u4e3a\u4ee3\u8868\u4e00\u4e2a\u56de\u7b54\u7684 Answer \u5bf9\u8c61\r\n\r\n\r\n\r\n\u8054\u7cfb\u6211\r\n----------\r\n\r\n- \u5fae\u535a\uff1ahttp://weibo.com/u/2948739432\r\n- github\uff1ahttps://github.com/egrcc\r\n- email\uff1azhaolujun1994@gmail.com\r\n",
"bugtrack_url": null,
"license": null,
"summary": "zhihu-python \u91c7\u7528 python2.7 \u7f16\u5199\uff0c\u7528\u6765\u65b9\u4fbf\u5730\u83b7\u53d6\u77e5\u4e4e\u4e0a\u5404\u79cd\u5185\u5bb9\u7684\u4fe1\u606f\uff0c\u5e76\u4e14\u53ef\u4ee5\u65b9\u4fbf\u5730\u5c06\u7b54\u6848\u5907\u4efd\u5bfc\u51fa\u4e3a txt \u6216 markdown \u6587\u4ef6\u3002\u7531\u4e8e\u77e5\u4e4e\u5b98\u65b9\u76ee\u524d\u6ca1\u6709\u63d0\u4f9b api\uff0c\u6240\u4ee5\u6709\u4e86\u6b64\u9879\u76ee\u7684\u5b58\u5728\u3002.",
"version": "1.2.5",
"project_urls": {
"Homepage": "https://github.com/yanjlee/zhihu-python"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "27f69e7245204c990207e7101dd70aab4b6b62ced08979dac262ca9adfc9acd5",
"md5": "2771d089249c0a8cf9dd71441b764b93",
"sha256": "5b55ee9aec35eba4d0dab01519ced542bcf24c9c582808294e8f335b2dafe6ab"
},
"downloads": -1,
"filename": "zhihu_python-1.2.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "2771d089249c0a8cf9dd71441b764b93",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 7805,
"upload_time": "2024-06-01T08:46:19",
"upload_time_iso_8601": "2024-06-01T08:46:19.230497Z",
"url": "https://files.pythonhosted.org/packages/27/f6/9e7245204c990207e7101dd70aab4b6b62ced08979dac262ca9adfc9acd5/zhihu_python-1.2.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2ea274994d13339932151475427bb6f435d3274e7d03e4e4b9605111c248e191",
"md5": "f4b89e8744972c602cb1d577d8311a7d",
"sha256": "dad314e6bd1765b74c9e28add0e0fdff42b5e20edea3c13f317ebed5ba46ec9e"
},
"downloads": -1,
"filename": "zhihu_python-1.2.5.tar.gz",
"has_sig": false,
"md5_digest": "f4b89e8744972c602cb1d577d8311a7d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 12201,
"upload_time": "2024-06-01T08:46:21",
"upload_time_iso_8601": "2024-06-01T08:46:21.493460Z",
"url": "https://files.pythonhosted.org/packages/2e/a2/74994d13339932151475427bb6f435d3274e7d03e4e4b9605111c248e191/zhihu_python-1.2.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-06-01 08:46:21",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "yanjlee",
"github_project": "zhihu-python",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "requests",
"specs": []
},
{
"name": "beautifulsoup4",
"specs": []
},
{
"name": "html2text",
"specs": []
},
{
"name": "termcolor",
"specs": []
}
],
"lcname": "zhihu-python"
}