Package: zhlite
zhlite说明zhlite 是一个知乎的 Python 轻量客户端，全部功能全部采用知乎官方非公布 api 实现。因为很多接口需要登陆才能访问，所以zhlite需要登录才可以稳定使用。目前对于所有zhlite获取的信息，均只可以查看不可以修改。功能用户登录登陆用户的基本信息登陆用户的关注和被关注信息登陆用户的提问登陆用户的回答登陆用户的文章以登陆用户的身份访问问题以登录用户的身份访问回答批量下载回答中的图片批量下载回答中的视频获取回答的评论增加代理支持安装pip3 install zhlite使用zhlite有几个关键核心类：Auth (用户认证模块)User (用户模块)Question (问题模块)Answer (回答模块)Article (文章模块)模块说明Auth属性类型描述login()method用户登陆isloginbool是否登陆状态profileUser Object登陆用户platformstr当前运行的系统类型User属性类型描述idstr用户自定义IDuidstr用户IDnamestr显示名字genderstr性别 0:女 1:男 -1:未知urlstr用户url连接employmentsdict职业信息educationsdict教育信息locationslist地区信息avatarstr用户头像headlinestr个人简介is_vipbool盐选会员is_orgbool机构号follower_countint关注者数量followersgenerator关注者following_countint关注的人数量followingsgenerator关注的人answer_countint回答数量answersgenerator回答question_countint提问数量questionsgenerator提问article_countint文章数量articlesgenerator文章voteup_countint获得赞同数量visit_countint来访者数量Question属性类型描述idint问题IDtitlestr问题标题detailstr问题描述topicslist问题标签typestr问题状态createddatetime提问时间updateddatetime最后一次修改时间authorUser Object提问人answersgenerator回答Answer属性类型描述idint回答IDtypestr回答状态authorUser Object回答者excerptstr摘要contentstr回答(包含HTML信息)textstr回答(不包含HTML信息)comment_countint评论数voteup_countint赞同数createddatetime回答时间updateddatetime最后一次修改时间questionQuestion Object对应的问题imagesgenerator该回答的图片videosgenerator该回答的视频Article属性类型描述idint文章IDtitlestr文章标题authorUser Object发布者topicslist话题excerptstr摘要contentstr回答(包含HTML信息)textstr回答(不包含HTML信息)comment_countint评论数voteup_countint赞同数createddatetime发布时间updateddatetime最后一次修改时间简要使用使用代理(proxy)>>>importzhlite>>>proxies={>>>"http":"http://ip:port",>>>"https":"https://ip:port">>>}>>>zhlite.set_proxy(proxies)用户认证(Auth)第一次实例化Auth对象时需要通过手机号和密码登陆，之后会生成一个cookies.txt文件保存登录信息，以后无需再次重复登陆。如需重新登陆，可以通过.login(relogin=True)强制重新登陆，并刷新cookies.txt文件注意：短时间内多次通过密码登陆会导致账户异常，账户异常会强制要求用户更改密码并短时间内锁定ip>>>fromzhliteimportAuth>>>auth=Auth()>>>auth.login(relogin=True)登陆用户用户登陆之后可通过.profile获得一个登录用户的User对象>>>fromzhliteimportAuth>>>auth=Auth()>>>auth.profile<zhlite.zhlite.Userobjectat0x0000024C6C989630>登录成功之后会在当前路径下保存一个cookies.txt作为下次登陆免输入的cookies文件，如果需要强制重新登陆或者更换登录用户，可以通过.islogin(relogin=True)(relogin指定True即为强制登陆)用户(User)>>>fromzhliteimportAuth,User,Question,Answer>>>auth=Auth()>>>user=User('zhihuadmin')# 知乎小管家>>>user<zhlite.zhlite.Userobjectat0x00000293F66A81D0>>>>user.id'zhihuadmin'>>>user.name'知乎小管家'>>>user.questions<generatorobjectUser.questionsat0x00000293F67620C0>>>>list(user.questions)# 谨慎用 list() 如果用户的提问数量很多会导致性能问题[<zhlite.zhlite.Questionobjectat0x00000293F77164E0>,<zhlite.zhlite.Questionobjectat0x00000293F77FD1D0>,<zhlite.zhlite.Questionobjectat0x00000293F76AB048>,<zhlite.zhlite.Questionobjectat0x00000293F6691C18>,<zhlite.zhlite.Questionobjectat0x00000293F7582E80>,<zhlite.zhlite.Questionobjectat0x00000293F66A80B8>,<zhlite.zhlite.Questionobjectat0x00000293F758E390>,<zhlite.zhlite.Questionobjectat0x00000293F7716400>,<zhlite.zhlite.Questionobjectat0x00000293F6691BE0>,<zhlite.zhlite.Questionobjectat0x00000293F76ECA90>]问题(Question)>>>fromzhliteimportAuth>>>auth=Auth()>>>question=Question('19550225')>>>question<zhlite.zhlite.Questionobjectat0x00000293F76ECF28>>>>question.title'如何使用知乎？'>>>question.author<zhlite.zhlite.Userobjectat0x00000293F76EC8D0>>>>question.created'2010-12-20 03:27:20'>>>question.answers<generatorobjectQuestion.answersat0x00000293F67622A0>回答(Answer)>>>answer=Answer('95070154')>>>answer<zhlite.zhlite.Answerobjectat0x00000293F77FD1D0>>>>answer.excerpt'本问题隶属于「知乎官方指南」：属于「知乎官方指南」的问答有哪些？ -- 在知乎上回答问题有一个基本原则：尽可能提供详细的解 释和说明。 不要灌水——不要把「评论」当作「答案」来发布。 如果你对问题本身或别人的答案有自己的看法，你可以通过「评论」来进行，不要把评论当作答案来发布。那样的话，该回答会被其他用户点击「没有帮助」而折叠起来，反而起不到实际效果，也无助于提供高质量的答案。 --------关于回答--------- …'>>>answer.comment_count11>>>answer.created'2016-04-13 13:48:52'>>>answer.question<zhlite.zhlite.Questionobjectat0x00000293F76AB048>