Raul2018

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

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)
 
posted on 2024-03-24 12:59  Raul2018  阅读(7)  评论(0编辑  收藏  举报