From: https://mp.weixin.qq.com/s/XRiYpXvvMW7fGpMgPN39Aw
----------------------------------------------------------------------------------------
在 Python 编程中,处理网络请求是一个常见的任务,特别是做爬虫采集数据。最受欢迎的是 Requests 和 Selenium。而Requestium 结合了这两个库优点的工具,它可以让你在一个统一的接口中使用 Requests 的简便性和 Selenium 的强大功能。
1. 安装 Requestium
在开始使用 Requestium 之前,你需要先将其安装到你的环境中。安装非常简单,可以通过 pip 命令完成:
pip install requestium
2. Requestium 的核心功能
- 结合 Requests 和 Selenium: Requestium 将 Requests 库的简易性和 Selenium 库的交互功能结合在了一起。
- 无缝切换: 它允许用户在需要时从 Requests 无缝切换到 Selenium,反之亦然。
- 增强的 XPath 支持: Requestium 提供了对 XPath 的额外支持,使得在使用 Selenium 时可以更方便地定位元素。
3. 使用 Requestium 发送请求
Requestium 的使用方法与 Requests 类似。以下是一个基本示例,展示如何发送 GET 请求:
from requestium import Session
# 创建一个 Session 对象
s = Session(webdriver_path='chromedriver', browser='chrome', default_timeout=15)
# 使用 Requestium 发送 GET 请求
response = s.get('https://www.example.com')
print(response.text)
4. 结合 Selenium 和 Requests
Requestium 的真正强大之处在于它能够让你在需要时切换到 Selenium。以下是一个示例,展示如何在发送请求后使用 Selenium 处理 JavaScript:
from requestium import Session
s = Session(webdriver_path='chromedriver', browser='chrome', default_timeout=15)
# 发送请求
s.get('https://www.example.com')
# 使用 Selenium 处理页面
s.driver.get('https://www.example.com')
# 使用 Selenium 定位元素
element = s.driver.find_element_by_xpath('//div[@class="example"]')
print(element.text)
5. 实战案例
假设我们要抓取一个动态加载内容的网页。首先,我们使用 Requestium 发送请求,然后通过 Selenium 处理 JavaScript,最后提取所需数据。
from requestium import Session
s = Session(webdriver_path='chromedriver', browser='chrome', default_timeout=15)
# 访问网页
s.get('https://www.dynamic-content-website.com')
# 使用 Selenium 处理动态内容
s.driver.get('https://www.dynamic-content-website.com')
# 提取数据
data = s.driver.find_element_by_xpath('//div[@id="dynamic-content"]').text
print(data)
标签:Requestium,get,Selenium,https,requests,com,Requests,摩擦
From: https://www.cnblogs.com/Raul2018/p/18092292