缘起
最近发现知乎的登录界面改了,抓包看了看,果然登录方式也变了,会根据用户名字符串发送不同字段的POST。中午研究了一会,写了个登录知乎的工具类,可以自动处理Cookie,维持登录状态。目前仅实现登录和打开网页的功能。
依赖的第三方库
requests
BeautifulSoup
lxml
这个不装没关系,把__login()
方法中的lxml
改成html.parser
即可。
用法
创建ZhihuClient对象
1 | client = ZhiHuClient() |
第一次使用时,需要调用login()方法登录一次,生成cookie文件:1
client.login("你的用户名", "你的密码")
此时会下载并打开验证码图片:
==================================================
已打开验证码图片,请识别!
关闭图片后,会提示你输入验证码:
==================================================
已打开验证码图片,请识别!
请输入验证码:
如果验证码输入错误,会提示:
==================================================
登录失败
错误信息 ---> 请提交正确的验证码 :(
==================================================
已打开验证码图片,请识别!
如果验证码输入正确,提示:
==================================================
登录成功
==================================================
已在同目录下生成cookie文件: cookie
下次登录时会自动载入此cookie文件,不再需要调用login
打开网页
1 | res = client.open(url) |
返回一个Response
对象,其方法与属性请参照requests
库
完整代码
1 | #!/usr/bin/env python |