ZhihuClient 知乎客户端类

class zhihu.client.ZhihuClient(cookies=None)[源代码]

知乎客户端类,内部维护了自己专用的网络会话,可用cookies或账号密码登录.

__getattr__(item: str)[源代码]

本函数用于获取各种类,如 Answer Question 等.

支持的形式有:
  1. client.answer()
  2. client.author()
  3. client.collection()
  4. client.column()
  5. client.post()
  6. client.question()
  7. client.topic()

参数均为对应页面的url,返回对应的类的实例。

__init__(cookies=None)[源代码]

创建客户端类实例.

参数:cookies (str) – 见 login_with_cookies()cookies 参数
返回:知乎客户端对象
返回类型:ZhihuClient
create_cookies(file, need_captcha=False, use_getpass=True)[源代码]

在终端中执行登录流程,将 cookies 存放在文件中以便后续使用

参数:
  • file (str) – 文件名
  • need_captcha (bool) – 登录过程中是否使用验证码, 默认为 False
  • use_getpass (bool) – 是否使用安全模式输入密码,默认为 True, 如果在某些 Windows IDE 中无法正常输入密码,请把此参数设置为 False 试试
返回:

get_captcha()[源代码]

获取验证码数据。

返回:验证码图片数据。
返回类型:bytes
login(email, password, captcha=None)[源代码]

登陆知乎.

参数:
  • email (str) – 邮箱
  • password (str) – 密码
  • captcha (str) – 验证码, 默认为None,表示不提交验证码
返回:

元素序号 元素类型 意义 说明
0 int 是否成功 0为成功,1为失败
1 str 失败原因 登录成功则为空字符串
2 str cookies字符串 登录失败则为空字符串

返回类型:

(int, str, str)

login_in_terminal(need_captcha=False, use_getpass=True)[源代码]

不使用cookies,在终端中根据提示登陆知乎

参数:
  • need_captcha (bool) – 是否要求输入验证码,如果登录失败请设为 True
  • use_getpass (bool) – 是否使用安全模式输入密码,默认为 True, 如果在某些 Windows IDE 中无法正常输入密码,请把此参数设置为 False 试试
返回:

如果成功返回cookies字符串

返回类型:

str

login_with_cookies(cookies)[源代码]

使用cookies文件或字符串登录知乎

参数:cookies (str) –
参数形式 作用
文件名 将文件内容作为cookies字符串
cookies 字符串 直接提供cookies字符串
返回:
返回类型:None
me()[源代码]

获取使用特定 cookies 的 Me 实例

返回:cookies对应的Me对象
返回类型:Me
remove_proxy_pool()[源代码]

移除代理池

set_proxy(proxy)[源代码]

设置代理

参数:proxy (str) – 使用 “http://example.com:port” 的形式
返回:
返回类型:None
说明:由于一个 ZhihuClient 对象和它创建出来的其他知乎对象共用 一个Session,所以调用这个方法也会将所有生成出的知乎类设置上代理。
set_proxy_pool(proxies, auth=None, https=True)[源代码]

设置代理池

参数:
  • proxies – proxy列表, 形如 ["ip1:port1", "ip2:port2"]
  • auth – 如果代理需要验证身份, 通过这个参数提供, 比如
  • https – 默认为 True, 传入 False 则不设置 https 代理
from requests.auth import HTTPProxyAuth
auth = HTTPProxyAuth('laike9m', '123')
说明:每次 GET/POST 请求会随机选择列表中的代理