Python使用DrissionPage实现自动化处理的简单入门指南
在Python自动化领域Selenium和Requests是两个常用工具但各有局限。DrissionPage巧妙结合了两者优势既能用浏览器自动化处理动态页面又能通过HTTP请求提升效率。本文将带你从零开始用10分钟掌握DrissionPage的核心用法。一、DrissionPage是什么DrissionPage是一个混合驱动的网页自动化库核心特点双引擎驱动支持Selenium浏览器渲染和RequestsHTTP请求无缝切换简洁API类似jQuery的选择器语法操作更直观智能等待自动处理元素加载延迟多浏览器支持Chrome/Firefox/Edge等适合场景网页数据采集自动化测试表单填写文件上传/下载任何需要模拟用户操作的场景二、快速安装1pipinstallDrissionPage如果使用Selenium模式需额外下载对应浏览器的WebDriver如chromedriver三、5分钟上手基础操作1. 初始化浏览器会话1234567fromDrissionPageimportChromiumPage# 以Chrome为例# 启动浏览器无头模式可加headlessTruepageChromiumPage()# 访问网页page.get(https://www.baidu.com)2. 元素定位与操作1234567# 通过ID定位搜索框并输入内容search_boxpage.ele(#kw) # CSS选择器语法search_box.input(Python自动化)# 通过文本定位按钮并点击search_btnpage.ele(text:百度一下)search_btn.click()3. 获取页面数据123456789# 获取标题print(page.title)# 获取当前URLprint(page.url)# 获取元素文本如第一条搜索结果first_resultpage.eles(div.result)[0].textprint(first_result)4. 完整示例百度搜索1234567891011121314151617fromDrissionPageimportChromiumPage# 初始化pageChromiumPage()page.get(https://www.baidu.com)# 操作page.ele(#kw).input(DrissionPage)page.ele(text:百度一下).click()# 获取结果resultspage.eles(div.result c-container)fori, resultinenumerate(results[:3],1):print(f{i}. {result.text.split(\n)[0]})# 关闭浏览器page.close()四、进阶功能速览1. 智能等待机制12345# 等待元素出现最多10秒elementpage.wait(div.loading, timeout10)# 表示CSS选择器# 等待页面标题包含特定文本page.wait(title:结果页面)2. 切换窗口/iframe12345# 切换到新标签页page.switch_to.new_tab(https://example.com)# 切换到iframepage.switch_to.frame(iframe_id)# 或通过索引page.switch_to.frame(0)3. 文件上传123# 直接操作隐藏的file inputupload_inputpage.ele(input[typefile])upload_input.send_keys(rC:\test\file.jpg)4. 执行JavaScript123456# 获取页面JS变量window_widthpage.run_js(return window.innerWidth)print(f窗口宽度: {window_width})# 修改页面样式page.run_js(document.body.style.backgroundColor lightblue)五、常见问题解决1. 元素找不到检查选择器是否正确推荐使用浏览器开发者工具复制CSS选择器添加显式等待page.wait(selector, timeout10)确认元素是否在iframe中2. 如何处理登录弹窗123# 示例处理基本认证弹窗page.set_auth(username,password)page.get(https://example.com/protected)3. 如何截图保存1page.save(screenshot.png)# 保存当前页面截图4. 无头模式设置12# 启动时添加参数pageChromiumPage(headlessTrue)# 无界面模式六、学习资源推荐选择器练习使用浏览器开发者工具的Copy selector功能快速获取元素定位方式实战项目尝试自动化登录知乎/微博等网站注意遵守robots协议
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2475209.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!