爬虫自动化(DrissionPage)

目录

一.介绍:

下载DrissionPage,还是我们熟悉的pip:

环境准备:

二.基本代码:

它对于的导包和类使用:

窗口的设置:

和获取的页面的滑动:

3.进一步认识DrissionPage:

浏览器可以多开:

监听网络数据:

四.反监测:

正常模式下:

无头模式:

五.总结:


一.介绍:

dDrissionPage官网✨️ 概述https://www.drissionpage.cn/

来自官网的介绍:

DrissionPage® 是一个基于 Python 的网页自动化工具。

既能控制浏览器,也能收发数据包,还能把两者合而为一。

下载DrissionPage,还是我们熟悉的pip:

pip install DrissionPage

环境准备:

  • 操作系统:Windows,Linux,Mac
  • python版本:3.6及以上
  • 浏览器:Chromium内核

二.基本代码:

python 复制代码
from DrissionPage import ChromiumPage

page = ChromiumPage()
page.get('https://www.baidu.com/')

和自动化一样自己打开浏览器:

它对于的导包和类使用:

python 复制代码
# ChromiumPage 只控制浏览器,不能收发数据包
from DrissionPage import ChromiumPage
 
# SessionPage 只用于收发数据包,不能控制浏览器
from DrissionPage import SessionPage
 
# 浏览启动参数管理器,用于控制浏览器启动参数
from DrissionPage import DriverOptions
 
# Session对象启动参数管理器,用于控制Session对象启动参数
from DrissionPage import SessionOptions
 
# 动作链类,用于模拟一连串鼠标键盘动作
from DrissionPage import ActionChains

窗口的设置:

python 复制代码
page.set.window.maximized()    # 窗口最大化
 
page.set.window.minimized()    # 窗口最小化
 
page.set.window.fullscreen()    # 用于使窗口切换到全屏模式
 
page.set.window.normal()    # 用于使窗口切换到普通模式
 
page.set.window.size(500, 500)    # 用于设置窗口大小。
 
page.set.window.location(500, 500)    # 用于设置窗口位置
 

和获取的页面的滑动:

python 复制代码
page.scroll.to_top()    # 用于滚动页面到顶部,水平位置不变
 
page.scroll.to_bottom()    # 用于滚动页面到底部,水平位置不变
 
page.scroll.to_half()    # 用于滚动页面到垂直中间位置,水平位置不变
 
page.scroll.to_rightmost()    # 用于滚动页面到最右边,垂直位置不变
 
page.scroll.to_leftmost()    # 用于滚动页面到最左边,垂直位置不变
 
page.scroll.to_location(300, 50)    # 用于滚动页面到滚动到指定位置
 
page.scroll.up(30)    # 用于使页面向上滚动若干像素,水平位置不变
 
page.scroll.down(30)    # 用于使页面向下滚动若干像素,水平位置不变
 
page.scroll.right(30)    # 用于使页面向右滚动若干像素,垂直位置不变
 
page.scroll.left(30)    # 用于使页面向左滚动若干像素,垂直位置不变

3.进一步认识DrissionPage:

浏览器可以多开:

每个浏览器的端口号不一样,和文件地址也不能一样。

python 复制代码
from DrissionPage import Chromium, ChromiumOptions

Ch1 = ChromiumOptions().set_local_port('端口号').set_user_data_path('')#1
Ch2 = ChromiumOptions().set_local_port().set_user_data_path('')#2
browser1 = Chromium(Ch1)
browser2 = Chromium(Ch2)

监听网络数据:

  • 注意:要先启动监听,再执行动作,listen.start() 之前的数据包是获取不到的;

  • 等待并获取:

  • 等待并获取:

python 复制代码
from DrissionPage import ChromiumPage

page = ChromiumPage()
page.get('网页地址') # 访问网址,这行产生的数据包不监听

page.listen.start('gitee.com/explore') # 开始监听,指定获取包含该文本的数据包(部分url)
for _ in range(5):
page('@rel=next').click() # 点击下一页
res = page.listen.wait() # 等待并获取一个数据包
print(res.url) # 输出数据包url
print(res.response.headers) # 输出响应头
print(res.response.statusText) # 输出响应状态码
print(res.response.body) # 输出响应内容

四.反监测:

在 Selenium、Playwright 、Playwright 的使用中,我们知道了自动化工具容易被网站检测,也提供了一些绕过检测的方案。这里我们介绍一下 DrissionPage 的反检测方案:

正常模式下:

无头模式:

可以发现,没有做任何反检测的操作,都不会被检测到,就连使用无头模式也只有 userAgent 有问题,不过我们 co.set_user_agent() 设置一下就可以了,虽然这些只是最基本的检测机制,但也够用了

五.总结:

DrissionPage 语法简洁,使用方便,底层基于 CDP 协议,拥有较强的反检测机制,目前不需要做任何反检测的操作就可以绕过国内外绝大多数的网站自动化检测。

相关推荐
郝学胜-神的一滴1 分钟前
深入理解QFlags:Qt中的位标志管理工具
开发语言·c++·qt·程序人生
未来之窗软件服务3 分钟前
业务员手机报价软件免费领取——仙盟创梦IDE
自动化·仙盟创梦ide·东方仙盟·智能报价
aneasystone本尊22 分钟前
学习 Coze Studio 的工作流执行逻辑
人工智能
aneasystone本尊31 分钟前
再学 Coze Studio 的智能体执行逻辑
人工智能
苏婳66631 分钟前
【最新版】怎么下载mysqlclient并成功安装?
数据库·python·mysql
xuanwuziyou33 分钟前
LangChain 多任务应用开发
人工智能·langchain
柯南二号1 小时前
【Java后端】MyBatis-Plus 原理解析
java·开发语言·mybatis
新智元1 小时前
一句话,性能暴涨 49%!马里兰 MIT 等力作:Prompt 才是大模型终极武器
人工智能·openai
猫头虎1 小时前
猫头虎AI分享|一款Coze、Dify类开源AI应用超级智能体Agent快速构建工具:FastbuildAI
人工智能·开源·github·aigc·ai编程·ai写作·ai-native
0wioiw01 小时前
Python基础(Flask①)
后端·python·flask