Login - 登录

zhihu_oauth 中对用户来说最重要的类就是 ZhihuClient 了。

想要获取到知乎的数据,必须先创建 ZhihuClient 对象并登录。

以下是几种常用的登录方法。

警告

关于手机号登录

使用手机号登录需要在手机号前加 +86 前缀。

使用手机号登录需要在手机号前加 +86 前缀。

使用手机号登录需要在手机号前加 +86 前缀。

说三遍。

use login - 使用 login

警告

小心

这种方式在知乎要求输入验证码时会引发 NeedCaptchaException,需要进行处理

from zhihu_oauth import ZhihuClient
from zhihu_oauth.exception import NeedCaptchaException

client = ZhihuClient()

try:
    client.login('email_or_phone', 'password')
except NeedCaptchaException:
    # 保存验证码并提示输入,重新登录
    with open('a.gif', 'wb') as f:
        f.write(client.get_captcha())
    captcha = input('please input captcha:')
    client.login('email_or_phone', 'password', captcha)

use login_in_terminal - 使用 login_in_terminal

第二种方式,使用 login_in_terminal 方法,此方法可以无参数调用, 将会在终端中提示用户输入用户名和密码。 也可以将用户名和密码作为参数,此时将不会提示输入。

此方式在遇见知乎需要验证码时会自动将验证码保存并提示用户输入,不用用户处理。

注解

为节省篇幅,import 语句和 构建 ZhihuClient 类的语句均省略,下同。

client.login_in_terminal() # or ('email@example.com', 'password')

Use load_token - 使用 load_token

第三种方式,载入 token 文件。

client.load_token('filename')

Save login session - 保存登录会话

有 load 当然也就有 save。

在成功登录之后,可以使用 save_token 方法保存登录状态,留着以后 load。

# 必须在 client 已经处于登录状态时才能使用
client.save_token('token.pkl')