首页 > 其他分享 >自动化(爬虫)工具 DrissionPage SessionPage模式 API介绍 使用笔记(三)

自动化(爬虫)工具 DrissionPage SessionPage模式 API介绍 使用笔记(三)

时间:2024-07-02 10:34:42浏览次数:17  
标签:None DrissionPage option 元素 API SessionPage obj base

自动化(爬虫)工具 DrissionPage SessionPage 模式 API介绍 使用笔记(三)

目录

  1. 启动
  2. 驱动启动配置
  3. 常用方法(API)

启动

最简单的启动方式,更多启动方式见这里

from DrissionPage import SessionPage

# session_or_options: Session对象或SessionOptions对象
# timeout: 超时时间(秒)
obj = SessionPage(session_or_options=None, timeout=None)

驱动启动配置

你可能需要配置一些启动参数,则可是使用下面的方法,更多信息见这里配置文件ini信息见这里

from DrissionPage import SessionPage,SessionOptions

# option = SessionOptions()  # 默认从 ini 文件中读取配置信息
option = SessionOptions(ini_path='config.ini')  # # 自定义配置文件

# 举例 一些快捷方式
option.set_headers = {'user-agent': 'Mozilla/5.0 (Macint...', 'connection': 'keep-alive' ...}  # 请求头
option.set_a_header('accept', 'text/html')  # 单独添加请求头中某一项
option.remove_a_header('accept')  # 删除请求头中某一项
option.clear_headers()  # 清除

option.set_proxies('http://localhost:1080')  # 设置代理

# 可为Cookie, CookieJar, list, tuple, str, dict,传入None可在ini文件标记删除
option.set_cookies(['key1=val1; domain=****', 'key2=val2; domain=****'])  # 多段 cookie,用列表分隔

obj = SessionPage(addr_or_opts=option)  # 加载自定义配置启动


常用方法

以下列出常用的 API,更多API见这里,注意obj代表实例化对象

1.页面

由于 SessionPage模式,本质是封装 Requests所以,方法也一样,包括 get()、post()、head()、options()、put() 、patch()、delete()等

# 重点说明 get 与 post 因为这两个方法做了单独的封装

# url: 目标url,可指定本地文件路径
# show_errmsg: 是否显示和抛出异常
# retry: 重试次数,为None时使用页面对象retry_times属性值
# interval: 重试间隔(秒),为None时使用页面对象retry_interval属性值
# timeout: 连接超时时间(秒),为None时使用页面对象timeout属性值
# kwargs: 其他连接参数,参考 requests 参数
obj.get(url, show_errmsg=False, retry=None, interval=None, timeout=None, **kwargs)

# url: 目标url
# show_errmsg: 是否显示和抛出异常
# retry: 重试次数,为None时使用页面对象retry_times属性值
# interval: 重试间隔(秒),为None时使用页面对象timeout属性值
# kwargs: 其他连接参数,参考 requests 参数
obj.post(url, show_errmsg=False, retry=None, interval=None, **kwargs)

2.元素定位 更多API见这里

针对响应结果是 HTML 的情况,这种情况因为 HTML 已经被获取到本地,所以建议使用 s_eles_eles 方法,这两个处理静态的更快

obj.s_ele(locator=None, index=1)  # 返回单个,多个符合时,默认返回第1个
obj.s_eles(locator)  # 返回匹配的全部元素

# 注意
# 页面对象和元素对象的 s_ele() 方法不能搜索到在 <iframe> 里的元素,页面对象的静态版本也不能搜索 <iframe> 里的元素。
# 要使用 <iframe> 里元素的静态版本,可先获取该元素,再转换。而使用 ChromiumFrame 对象,则可以直接用 s_ele() 查找元素

定位方式与语法,同ChromiumPage模式,这里不再赘述,可看这里

3.解析(获取)元素信息 更多API见这里

HTML下 解析(获取)元素信息, 若响应为 JSON,则直接使用 Python 处理 JSON 的方式即可

base = obj.ele('.content-box')

base.text  # 返回元素内所有文本组合成的字符串, 已去除多余换行符
base.raw_text  # 返回元素内原始文本
base.texts(text_node_only=False)  # 返回元素内所有直接子节点的文本,包括元素和文本节点
base.attrs  # 以字典形式返回元素所有属性及值
base.attr('name')  # 返回元素某个 attribute 属性值
base.value # 返回元素的value值
base.link # 返回元素的 href 属性或 src 属性

DrissionPage 官方文档
本文章的原文地址
GitHub主页

标签:None,DrissionPage,option,元素,API,SessionPage,obj,base
From: https://www.cnblogs.com/yqbaowo/p/18279298

相关文章

  • asp.net Core中控制器的两个基类ApiController和Controller
    1、Controller就是我们平常建的控制器  publicclassStudyontroller:Controller。2、ApiController这个我平常很少使用,今天发现了研究了一下,值得学习,一个很不错的控制器基类。   新建一个ApiController的步骤:  请求对应的方法就是通过请求提交数据的方式......
  • 阿里云 facechanin 人像写真大模型 API 实践
    文章目录前言开通模型定制文件管理服务人物图像检测(非必须)人物形象训练人物写真生成预设模板生成自定义模板生成总结前言在之前的文章中实践了阿里云的文字转语音大模型,感觉还是挺有意思的,效果也挺不错的,感兴趣的可以看下阿里云CosyVoice语音合成大模型API实践,......
  • Apipost接口测试工具的原理及应用详解(四)
    本系列文章简介:        随着软件行业的快速发展,API(应用程序编程接口)作为不同软件组件之间通信的桥梁,其重要性日益凸显。API的质量直接关系到软件系统的稳定性、性能和用户体验。因此,对API进行严格的测试成为软件开发过程中不可或缺的一环。在众多API测试工具中,Apipost......
  • Apipost接口测试工具的原理及应用详解(五)
    本系列文章简介:        随着软件行业的快速发展,API(应用程序编程接口)作为不同软件组件之间通信的桥梁,其重要性日益凸显。API的质量直接关系到软件系统的稳定性、性能和用户体验。因此,对API进行严格的测试成为软件开发过程中不可或缺的一环。在众多API测试工具中,Apipost......
  • 使用 Amazon Bedrock Converse API 简化大语言模型交互
    本文将介绍如何使用AmazonBedrock最新推出的ConverseAPI,来简化与各种大型语言模型的交互。该API提供了一致的接口,可以无缝调用各种大型模型,从而消除了需要自己编写复杂辅助功能函数的重复性工作。文中示例将展示它相比于以前针对每个模型进行独立集成的方式,具有更简单的实......
  • 免费节假日 API 接口
    转载地址:http://timor.tech/api/holiday获取指定日期的节假日信息接口地址:http://timor.tech/api/holiday/info/$date@params$date:指定日期的字符串,格式‘2018-02-23’。可以省略,则默认服务器的当前时间。@returnjson:如果不是节假日,holiday字段为null。12345......
  • 利用阿里云API获取实时天气信息|C语言Linux网络编程练手小项目
    文章目录目录文章目录前言一、HTTP数据请求1.HTTP概述2.数据请求方式3.JSON格式二、阿里云API获取,使用1.购买(白嫖)API接口步骤2.API使用代码编写3.编译程序 4.运行结果总结前言在项目开发时常常需要显示各种信息,如时间、天气、温度、空气质量指数等等。在......
  • 使用Vue 3和Axios从第三方API获取异步数据并展示
    在前端开发中,从第三方API获取数据并动态展示是非常常见且重要的需求之一。今天我们将深入探讨如何使用Vue3和Axios从第三方API获取异步数据并将其展示在页面上。通过这个例子,你将了解如何在Vue3中集成Axios,如何进行异步请求,以及如何动态地将数据绑定到模板以实......
  • WebApi读取配置文件帮助类
    1///<summary>2///appsettings.json操作类3///</summary>4publicclassAppSettings5{6staticIConfigurationConfiguration{get;set;}7staticstringcontentPath{get;set;}89p......
  • 使用Swagger 3注解编写API文档详解
    在现代软件开发中,API文档的编写是至关重要的一环,它不仅能帮助开发者理解和正确使用API,还能提升团队协作效率。Swagger3是一个流行的API文档规范,通过注解的方式可以清晰地定义API的各个方面。本文将深入探讨Swagger3中常用的注解及其使用方法。@OpenAPIDefinition和@Inf......