requests-html零基础到精通:API完全指南

requests-html零基础到精通:API完全指南

【免费下载链接】requests-html Pythonic HTML Parsing for Humans™ 【免费下载链接】requests-html 项目地址: https://gitcode.com/gh_mirrors/re/requests-html

你还在为复杂的HTML解析代码头疼吗?requests-html让Python解析网页变得简单!本文将带你掌握所有核心API,从基础安装到高级JavaScript渲染,轻松提取网页数据。读完本文,你将能够:快速上手requests-html、熟练使用CSS和XPath选择器、处理动态加载内容、掌握异步请求技巧。

项目简介

requests-html是一个为人类设计的Pythonic HTML解析库,提供了直观的API和强大的功能,包括完整的JavaScript支持、CSS和XPath选择器、自动跟随重定向等。项目详细信息可参考README.rst

requests-html Logo

快速安装

使用pipenv可以轻松安装requests-html:

$ pipenv install requests-html
✨🍰✨

安装文件配置可查看Pipfilesetup.py。目前仅支持Python 3.6及以上版本。

核心API详解

HTMLSession和AsyncHTMLSession

requests-html提供了同步和异步两种会话方式,分别通过HTMLSessionAsyncHTMLSession实现。核心实现代码位于requests_html.py

# 同步请求
from requests_html import HTMLSession
session = HTMLSession()
r = session.get('https://python.org/')

# 异步请求
from requests_html import AsyncHTMLSession
asession = AsyncHTMLSession()
async def get_pythonorg():
    r = await asession.get('https://python.org/')
    return r
results = asession.run(get_pythonorg)

查找元素

requests-html支持CSS选择器和XPath两种方式查找元素,通过find()xpath()方法实现。

# CSS选择器
about = r.html.find('#about', first=True)

# XPath选择器
elements = r.html.xpath('/html/body/div[1]/a')

提取链接

通过linksabsolute_links属性可以轻松提取页面中的链接:

# 相对链接
r.html.links

# 绝对链接
r.html.absolute_links

实战示例

基本使用

以下示例展示了如何使用requests-html提取Python官网的链接:

from requests_html import HTMLSession
session = HTMLSession()
r = session.get('https://python.org/')

# 获取所有链接
all_links = r.html.absolute_links
print(all_links)

测试用例可参考tests/test_requests_html.py,示例HTML文件可查看tests/python.html

JavaScript渲染

对于动态加载的内容,requests-html提供了render()arender()方法,通过Chromium浏览器渲染页面:

# 同步渲染
r = session.get('https://pythonclock.org')
r.html.render()

# 异步渲染
async def get_pyclock():
    r = await asession.get('https://pythonclock.org/')
    await r.html.arender()
    return r

高级功能

分页处理

requests-html提供了next()方法,可以自动识别并获取下一页内容:

# 获取下一页URL
next_url = r.html.next()

# 直接获取下一页内容
next_page = r.html.next(fetch=True)

自定义JavaScript执行

通过render()方法的script参数可以在页面加载时执行自定义JavaScript:

script = """
    () => {
        return {
            width: document.documentElement.clientWidth,
            height: document.documentElement.clientHeight
        }
    }
"""
result = r.html.render(script=script)

官方文档与资源

更多详细内容可参考官方文档docs/source/index.rst。测试用例和示例代码可在tests/目录中找到。项目构建配置可查看Makefile

通过本文的介绍,相信你已经掌握了requests-html的核心功能。无论是简单的网页数据提取还是复杂的动态内容处理,requests-html都能让你的工作变得更加高效和简单。

【免费下载链接】requests-html Pythonic HTML Parsing for Humans™ 【免费下载链接】requests-html 项目地址: https://gitcode.com/gh_mirrors/re/requests-html

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值