DecryptLogin:一个 Python 库搞定 40 多个网站的登录

很多做爬虫的同学都头疼一个问题:登录。每个网站的登录逻辑都不一样,有的要验证码,有的要滑块验证,有的要扫码。自己一个个写登录逻辑,费时费力。

CharlesPikachu 开发的 DecryptLogin 就是为了解决这个问题。它是一个 Python 库,把 40 多个网站的登录流程封装好了,你只需要调一个函数就行。

正文顶部截图

支持哪些网站

支持的网站数量不少,主流的基本都覆盖了。国内的有微博、知乎、B站、豆瓣、淘宝、京东、百度网盘、网易云音乐、QQ空间、12306 等。国外的有 Twitter、GitHub、Stackoverflow。

每个网站支持的登录方式不同。比如微博三种方式都支持(PC端、移动端、扫码),淘宝只支持扫码。用之前先看一下支持列表,免得踩坑。

怎么用

安装很简单,pip 一行命令:

pip install DecryptLogin

调用方式有两种。第一种是直接用 Login 类:

from DecryptLogin import login

lg = login.Login()
infos_return, session = lg.twitter(username='你的用户名', password='你的密码')

登录成功后返回一个 session 对象,后面就可以用这个 session 去请求该网站的其他页面,省去了手动管理 cookie 的麻烦。

第二种是用 Client 类,支持历史记录管理,适合需要频繁登录的场景。

README区域截图

不只是登录

DecryptLogin 还有一个配套项目叫 DecryptLoginExamples,里面是一些实际应用案例。比如下载 B 站指定 UP 主的所有视频、网易云个人歌单下载、微博监控、淘宝京东抢购脚本、批量删除微博说说等。

这些案例的价值在于,它们展示了登录之后能做什么。登录只是第一步,拿到 session 之后可以做的事很多。

几点提醒

这个项目声明了仅供学习使用。如果你拿去做商业用途或者违法的事情,作者会删库。所以用的时候注意分寸。

技术上也有局限。有些网站的反爬机制更新很快,今天能用的方法明天可能就失效了。另外部分网站需要安装 Node.js,因为有些登录流程涉及 JavaScript 代码的执行。

GitHub 上 Star 数 2800 多,不算特别多,但项目维护得还行。如果你是做 Python 爬虫的,遇到需要登录的场景,可以试试这个库,省不少时间。

但项目维护得还行。如果你是做 Python 爬虫的,遇到需要登录的场景,可以试试这个库,省不少时间。

更多推荐