Requests-HTML 对 Requests 进行了封装,添加了解析 HTML 的接口,是一个 Python 的 HTML 解析库。
我们知道 requests 只负责网络请求,不会对响应结果进行解析,因此可以把 requests-html 理解为可以解析 HTML 文档的 requsts 库。requests-html 的代码量非常少,都是基于现有的框架进行二次封装,开发者使用时可更方便调用。它依赖于 PyQuery、requests、lxml 等库。
requests-html 具有以下特性
完全支持 JavaScript
CSS 选择器
XPath 选择器
模拟用户代理(如同真正的网络浏览器)
自动跟踪重定向
连接池和 cookie 持久化
安装
pip install requests-html
使用方法
>>> from requests_html import session # 返回一个Response对象 >>> r = session.get('https://python.org/') # 获取所有链接 >>> r.html.links {'/users/membership/', '/about/gettingstarted/'} # 使用css选择器的方式获取某个元素 >>> about = r.html.find('#about')[0] >>> print(about.text) About Applications Quotes Getting Started Help Python Brochure
还有一个非常吸引人的特点是,它能将 HTML 转换为 Markdown 文本
# 将html转换为Markdown文本 >>> print(about.markdown) * [About](/about/) * [Applications](/about/apps/) * [Quotes](/about/quotes/) * [Getting Started](/about/gettingstarted/) * [Help](/about/help/) * [Python Brochure](http://brochure.getpython.info/)