目录?一.介绍:下载DrissionPage,还是我们熟悉的pip环境准备?二.基本代码它对于的导包和类使用窗口的设置和获取的页面的滑动3.进一步认识DrissionPage浏览器可以多开监听网络数据四.反监测正常模式下无头模式五.总结一.介绍:dDrissionPage官网?? 概述[这里是图片003]https://www.drissionpage.cn/来自官网的介绍DrissionPage是一个基于 Python 的网页自动化工具。既能控制浏览器也能收发数据包还能把两者合而为一。下载DrissionPage,还是我们熟悉的pippip install DrissionPage环境准备操作系统WindowsLinuxMacpython版本3.6及以上浏览器Chromium内核二.基本代码from DrissionPage import ChromiumPage page ChromiumPage() page.get(https://www.baidu.com/)和自动化一样自己打开浏览器它对于的导包和类使用# ChromiumPage 只控制浏览器不能收发数据包 from DrissionPage import ChromiumPage # SessionPage 只用于收发数据包不能控制浏览器 from DrissionPage import SessionPage # 浏览启动参数管理器用于控制浏览器启动参数 from DrissionPage import DriverOptions # Session对象启动参数管理器用于控制Session对象启动参数 from DrissionPage import SessionOptions # 动作链类用于模拟一连串鼠标键盘动作 from DrissionPage import ActionChains窗口的设置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) # 用于设置窗口位置和获取的页面的滑动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浏览器可以多开每个浏览器的端口号不一样和文件地址也不能一样。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()之前的数据包是获取不到的等待并获取等待并获取from?DrissionPage?import?ChromiumPagepage??ChromiumPage()page.get(‘网页地址’)?# 访问网址这行产生的数据包不监听page.listen.start(‘gitee.com/explore’)?# 开始监听指定获取包含该文本的数据包(部分url)for?_?in?range(5):page(‘relnext’).click()?# 点击下一页res??page.listen.wait()?# 等待并获取一个数据包print(res.url)?# 输出数据包urlprint(res.response.headers)?# 输出响应头print(res.response.statusText)?# 输出响应状态码print(res.response.body)?# 输出响应内容四.反监测在 Selenium、Playwright 、Playwright 的使用中我们知道了自动化工具容易被网站检测也提供了一些绕过检测的方案。这里我们介绍一下 DrissionPage 的反检测方案正常模式下无头模式可以发现没有做任何反检测的操作都不会被检测到就连使用无头模式也只有 userAgent 有问题不过我们 co.set_user_agent() 设置一下就可以了虽然这些只是最基本的检测机制但也够用了五.总结DrissionPage 语法简洁使用方便底层基于 CDP 协议拥有较强的反检测机制目前不需要做任何反检测的操作就可以绕过国内外绝大多数的网站自动化检测。