首页 > 其他分享 >Requestium把requests按在地上摩擦

Requestium把requests按在地上摩擦

时间:2024-03-24 13:12:58浏览次数:22  
标签:Requestium get Selenium https requests com Requests 摩擦

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

相关文章

  • 爬虫----084-86requests基本使用及get,post请求
    基本使用importrequestsurl='http://www.baidu.com'response=requests.get(url=url)#一个类型和6个属性#print(type(response))#Response类型#设置响应地编码格式response.encoding='utf-8'#以字符串形式返回网页源码#print(response.text)#......
  • 7*24h新闻自动发送至微信(requests+pywinauto)
    7*24h新闻自动发送至微信(requests+pywinauto)1.爬取新闻列表2.发送至微信指定联系人1.爬取新闻列表目标地址:https://kuaixun.eastmoney.com/获取新闻列表importtime,requests,jsonimportpandasaspdsession=requests.session()headers={'User-Agent'......
  • Requests请求方式有那些吗?这篇就够了
    Requests请求方式有那些吗?这篇就够了使用Python的requests库,您可以进行多种类型的HTTP请求.以下是一些常见的请求方式:GET请求:response = requests.get(url)POST请求:response = requests.post(url, data=data)PUT请求:response = requests.put(url......
  • requests.post传的data如果是直接使用python dict封装,有些服务端接收不了这种数据类型
    平时在自己的php项目里,使用dict方式组装data,然后requests.post,一点问题都没有。但是调了后端一个java的微服务接口,结果就一直报错422: 最后问了一下开发,得到提示“python好像还有个毛病,python的json对象转字符串的时候,转出来的字符串不是标准json字符串,还要做个字符串处理,变成......
  • python requests.post Max retries exceeded with url 报错
    python requests.post  Maxretriesexceededwithurl 报错 importrequestsfromrequests.adaptersimportHTTPAdapterfromrequests.packages.urllib3.util.retryimportRetrysession=requests.Session()retries=Retry(total=5,backoff_factor=0.1,st......
  • python自动化——Requests——教程截图笔记复习
                                                                           123123......
  • 为HTTP而生的requests库,纵横江湖难逢敌手
    既然Python是一门全球流行的语言,那么对于网络通信的HTTP的支持肯定也是非常的优秀的。Python中原生的urllib模块也有对HTTP的支持,虽然也可以用来发送HTTP请求,但使用起来相对繁琐,并且API设计不够直观。requests库的出现填补了Python在HTTP请求方面的不足,简化了开发者的工......
  • python-Grequests,一个好用的 requests库的异步版本!
    Grequests是什么?grequests是一个Python库,它是requests库的异步版本。它允许你同时发送多个HTTP请求,而不必等待每个请求依次响应。可以在等待服务器响应的同时执行其他任务,从而节省时间并提高效率。安装Grequestspipinstallgrequests使用示例一:批量获取网页假如有一个......
  • 【python接口自动化系列】python + pytest + requests + allure + jsonpath + pyyaml,
     前置基础:python虚拟环境的创建、操作、迁移等python操作yamlpython操作mysqlpytest简易教程 配套练习环境(含相关接口):https://www.cnblogs.com/uncleyong/p/17165143.html 如果文章不能访问,请联系处理,wx:ren168632201 python接口自动化系列(01):自动化测试框......
  • conda报错、anconda报错:requests.exceptions.JSONDecodeError: Expecting value: line
    anconda报错,报错信息:requests.exceptions.JSONDecodeError:Expectingvalue:line1column1(char0)不能使用conda新建环境和安装library库,网上搜索相关问题后发现是之前配置的第三方源地址出现了问题。解决方法:shell中输入命令:condaconfig--remove-keychannels......