【Python 技能树共建】python selectolax 模块 & Python 爬虫模拟登录
Python selectolax 模块是什么
在 Python 爬虫中 selectolax 模块用于解析网页源码,而且效率非常快。
开源地址为:selectolax
模块安装使用下述命令
怎么用
上手案例
导入模块 parser 中的 HTMLParser 类,就可以对网页源码进行格式化操作,然后执行 css_first() 方法,提取网页内容。其语法格式类似于 cssselect 模块,即 CSS 选择器。
其中 .text() 方法为获取文本内容,.attributes 可以获取标签属性。
如果想要获取网页中多个元素,可以使用下述代码。
更多的方法和属性
一些简单的属性如下所示。
还可以移除指定标签,例如下述代码,用到的方法是 strip_tags()。
标签对象 Node
在上文中使用 css_first() 方法得到的是 Node 对象,其常用的属性有 attributes,获取标签属性,child 获取标签子节点。
css() 在当前标签继续查找,html 属性用于获取当前标签的 HTML 代码,其余内容,阅读文档即可理解,不在赘述。
扩展场景
Selectolax 支持两个解析引擎:Modern 和 Lexbor。默认情况下使用 Modern,二者大多数功能相同,差异如下所示。
Lexbor 后端处于测试阶段,缺少一些功能。
参考资料:官方手册
Python 爬虫模拟登录
Python 爬虫模拟登录是使用脚本实现自动登录,部分站点需要逆向加密逻辑,更多的站点会采用验证码进行鉴权验证。
本文为大家带来最简单的登录,其核心用到的是 requests 模拟 POST 请求。
本次练习使用的站点是 https://www.lanqiao.cn/,可以提前注册一个账号。
因该站点无验证码,所以不需要解决验证码逻辑。
怎么用
上手案例
通过浏览器的开发者工具,抓取登录操作的请求地址和参数逻辑,得到下述信息。
请求网址: https://passport.lanqiao.cn/api/v1/login/?auth_type=login&redirect_url=https:%2F%2Fwww.lanqiao.cn%2F
请求方法: POST
请求参数如下所示:
基于上述内容,使用 requests 模块复现其代码逻辑即可。
运行代码之后,得到跳转链接和登录之后的用户 cookie,这两个信息很重要,保存在本地可以对接后续操作。
所有的模拟登录,最终都是为了获取用户登录之后的标识字符串,可能为 cookie,也可能为更加复杂一些的,例如 Authorization (服务器 OAUTH2 生成的参数)
扩展场景
很多时候,我们的爬虫模拟登录都是用的自建 cookie 池,你可以顺着这个思路学习。
版权声明: 本文为 InfoQ 作者【梦想橡皮擦】的原创文章。
原文链接:【http://xie.infoq.cn/article/e45111c31a43abbf40e4d655c】。文章转载请联系作者。










评论