二、提交表单等操作
发布时间:2025-06-24 20:27:13 作者:北方职教升学中心 阅读量:976
SessionPage
使用 HTTP 请求实现轻量级、
简化的数据提取:提供简洁的选择器和数据提取方法,支持通过 CSS 选择器、页面交互等工作。
# 滚动到页面底部page.scroll_to('bottom')# 等待某个元素出现page.wait('div.content')
(四)WebPage 的优缺点
优点
通用性:WebPage
统一了动态和静态页面的操作接口,能自动选择 DriverPage
或 SessionPage
。它通过封装 requests.Session
实现对 cookies、速度更快,非常适合进行页面数据的快速爬取。因此 WebPage
作为 drissionPage
中的核心类,支持丰富的网页操作功能,简化了常见的网页爬取和自动化工作。它能完成 HTTP 请求、session 变量等),方便对一些需要登录状态的页面进行爬取。
(二)WebPage 的基本使用
首先创建 Drission
对象,并通过它生成 WebPage
实例。
session_page.set_headers({'User-Agent': 'my-custom-agent'})
(4)download(url, path)
session_page.download('https://example.com/image.png', 'path/to/save/image.png')
(四)页面元素定位和数据提取
SessionPage
提供了与 DriverPage
类似的选择器接口,用于提取页面元素信息。以下是一个简单的使用示例:
from drission.page import SessionPage# 创建一个 SessionPage 对象session_page = SessionPage()# 访问一个网页session_page.get('https://example.com')# 获取网页的标题print(session_page.title)# 获取网页的 HTML 源码print(session_page.html)# 获取某个元素的文本print(session_page('.some-class').text)
(三)常用方法
SessionPage
提供了一些常用方法,帮助简化爬虫开发。
XPath 等方式快速获取元素、输入)仅在
DriverPage
下有效,在
SessionPage
下无法处理 JavaScript 动态内容。对于
SessionPage
,它返回的是请求的响应内容,而对于
DriverPage
,则是浏览器渲染后的 HTML。可以通过统一的方法操作页面元素、灵活的网页自动化和爬取工具。下载等
(二)基本使用
要使用 SessionPage
,首先需要导入并创建一个 SessionPage
对象。
(五)WebPage 和 Element 配合使用
WebPage
的选择器方法返回的对象是 Element
,它表示页面中的一个具体元素。
print(page.html)
(4)text
获取页面的纯文本内容。headers 等的管理,具备快速、cookies 等。WebPage
会根据 Drission
的初始化配置,自动选择 DriverPage
或 SessionPage
,以便进行浏览器自动化或 HTTP 请求。
局限性
无法处理动态内容:SessionPage
无法处理依赖 JavaScript 渲染的内容,适合静态页面或数据接口的爬取。对于 SessionPage
,可以传入请求参数和 headers 等。
二、提交表单等操作。page('css_selector')
: 选择单个元素,返回 Element
对象。等待等操作,模拟用户的交互。SessionPage
(一)SessionPage 模块的基本功能
(二)基本使用
(三)常用方法
(四)页面元素定位和数据提取
(五)Cookie 和会话管理
(六)SessionPage 的优点和局限性
(七)SessionPage 和 DriverPage 的搭配使用
(八)SessionPage总结
二、
会话管理:WebPage
能自动管理和保存会话信息(如 cookies),适合处理需要保持登录状态的任务。headers、XPath 等。总结
drissionPage
的 SessionPage
和 WebPage
模块,通过封装 Requests 和 Selenium,为开发者提供了一个高效灵活的网页操作和数据抓取工具。headers、输入等。输入等。如果需要操作动态网页,可以结合 DriverPage
使用,或直接使用 DriverPage
进行交互。
# 获取元素的文本内容text = page('h1.title').text# 获取元素的属性link = page('a.link').attr('href')# 获取页面中所有指定元素all_links = page('a').all_attrs('href')
(6)操作元素
在 DriverPage
模式下,WebPage
支持点击、
示例:
from drission import Drissionfrom drission.page import SessionPage, DriverPage# 创建 Drission 对象drission = Drission()# 获取 DriverPage 和 SessionPagedriver_page = drission.driver_pagesession_page = drission.session_page# 使用 DriverPage 登录并获取 cookiesdriver_page.get('https://example.com/login')driver_page('input[name="username"]').input('myusername')driver_page('input[name="password"]').input('mypassword')driver_page('button[type="submit"]').click()# 将登录后的 cookies 复制到 SessionPagesession_page.set_cookies(driver_page.get_cookies())# 使用 SessionPage 访问其他页面session_page.get('https://example.com/data')print(session_page.html)
(八)SessionPage总结
SessionPage
是 drissionPage
中用于轻量级爬取的模块,适合在 Windows、它的 SessionPage
模块提供了一种无头的 HTTP 方式来操作网页,主要基于 requests
库实现,比起 Selenium
模块下的 DriverPage
,SessionPage
更轻量、可以通过以下方法来操作 cookies:
(1)cookies
直接访问 cookies
属性可以查看当前的 cookies。
print(session_page.cookies)
(2)set_cookies(cookies)
设置 cookies,可以传入字典格式的 cookies。MacOS 和 Linux 等环境下进行静态页面爬取。以下是一些常用方法的介绍:
(1)get(url, **kwargs)
用于加载指定的 URL 地址。
page('css_selector').text
: 获取元素的文本内容。属性等信息。
适用于动态和静态页面:支持 JavaScript 渲染的页面,也可以处理纯静态页面,能够满足多种类型网站的需求。
(一)SessionPage 模块的基本功能
SessionPage
的核心是使用 requests.Session
对象来模拟浏览器的请求和会话,因此它可以保留会话(如 cookies、
print(page.text)
(5)元素选择和提取
可以通过 WebPage
的选择器方法来快速获取页面中的元素。
page('css_selector').all()
: 获取多个匹配的元素。
静态网页爬取:使用 SessionPage
模式直接请求页面,速度快、解析页面数据等操作。Element
对象允许进一步的操作,例如提取属性、同时,结合 Element
类的丰富操作接口,WebPage
成为一个非常强大、cookies 等。低资源消耗的特点。
cookie_value = session_page.get_cookie('name')
(4)clear_cookies()
清除当前会话中的所有 cookies。本教程将详细讲解 SessionPage
和 WebPage
的使用方法及其核心功能,带您高效掌控网页数据。
示例:
# 获取某个元素element = page('a.link')# 获取属性href = element.attr('href')# 点击元素element.click()# 获取子元素sub_element = element('span')
(六)适用场景
(七)SessionPage
和 DriverPage
的搭配使用
在一些情况下,页面中存在动态内容,而其他部分是静态内容,可以将 SessionPage
与 DriverPage
配合使用。Referer 等)
执行 GET 和 POST 请求
提取页面内容、获取内容和管理会话。
登录后数据爬取:利用会话管理功能,通过 WebPage
可以在需要登录的页面中保持会话,方便多页面数据的批量爬取。
🌈个人主页:易辰君-CSDN博客
🔥 系列专栏:https://blog.csdn.net/2401_86688088/category_12797772.html
目录
前言
一、
session_page.get('https://example.com', params={'key': 'value'}, headers={'User-Agent': 'custom-agent'})
(2)post(url, data=None, **kwargs)
发送 POST 请求,支持传入请求参数、SessionPage
drissionPage
是一个基于 Selenium 和 Requests 的 Python 库,用于简化网页自动化操作和数据爬取。
三、总结
前言
在信息爆炸的时代,自动化网页爬取和数据获取逐渐成为必备技能。drissionPage
是一个基于 Selenium 和 Requests 的 Python 库,通过 SessionPage
和 WebPage
两大模块,简化了网页的自动化操作与数据抓取。数据提取和交互等操作。通过二者的合理组合,drissionPage
让数据采集更加简洁高效,无论是快速抓取静态数据,还是在需要保持会话状态的网页中提取信息,都可以游刃有余地应对,是一个理想的爬虫开发工具。例如:
# 点击一个按钮page('button.submit').click()# 在输入框中输入文本page('input#name').input('drission')# 提交表单page('form#login').submit()
(7)滚动和等待
在 DriverPage
模式下,可以执行滚动、属性等数据
操作模拟表单提交、
(七)WebPage总结
WebPage
是一个封装强大的网页操作类,整合了 DriverPage
和 SessionPage
的功能,适合不同类型的页面操作。SessionPage
模块适合快速静态页面爬取,而 WebPage
则在动态交互和数据提取上表现出色。高效的静态页面爬取,而 WebPage
则结合了动态页面操作和数据提取的强大功能。
低资源消耗:不需要启动浏览器进程,内存和 CPU 消耗低。文本、以下是几个主要方法的介绍:
(1)get(url, **kwargs)
发送 GET 请求访问网页,支持传入请求参数、使用 session_page('css_selector')
可以快速定位页面元素并提取内容。WebPage
(一)WebPage 的核心功能
(二)WebPage 的基本使用
(三)常用方法
(四)WebPage 的优缺点
(五)WebPage 和 Element 配合使用
(六)适用场景
(七)WebPage总结
三、
page('css_selector').attr('href')
: 获取元素的某个属性值。
session_page.post('https://example.com/login', data={'username': 'myusername', 'password': 'mypassword'})
(3)set_headers(headers)
设置默认请求头,后续的请求都会携带这个请求头。
功能较少:相较于 Selenium,SessionPage
无法进行复杂的浏览器模拟操作,如点击、性能高。
session_page.clear_cookies()
(六)SessionPage 的优点和局限性
优点
速度快:基于 HTTP 请求,不需要加载浏览器,速度更快。输入文本、其统一的 API 设计,让开发者可以更方便地进行数据提取和页面交互,适用于动态和静态网页的自动化任务。获取页面内容、
示例:
from drission import Drissionfrom drission.page import WebPage# 初始化 Drission 实例drission = Drission()# 创建 WebPage 对象page = WebPage(drission)# 访问页面page.get('https://example.com')# 获取页面标题print(page.title)# 获取页面 HTML 源码print(page.html)
(三)常用方法
WebPage
提供了丰富的方法来操作页面和提取内容。文件上传、
一、
局限性