当前位置: 首页 > news >正文

Python脚手架系列-DrissionPage

记录DrissionPage模块使用中的一些常常复用的代码,持续更新…

接管谷歌浏览器

from DrissionPage import ChromiumPage, ChromiumOptionsco = ChromiumOptions().set_local_port(4249)
driver = ChromiumPage(addr_or_opts=co)

创建driver,如果浏览器已开启优先接管,需要设置谷歌浏览器的启动参数C:\Users\Gekte\AppData\Local\Google\Chrome\Application\chrome.exe --remote-debugging-port=4249 --remote-allow-origins=*设置端口需要对应。

获取tab

def get_tab(driver, html):tab_ids = driver.tab_idsfor tab_id in tab_ids:this_tab = driver.get_tab(tab_id)if html in this_tab.url:return this_tabelse:for tab_id in tab_ids:this_tab = driver.get_tab(tab_id)if this_tab.url in ["about:blank", "chrome://newtab/"]:return this_tabreturn driver.new_tab()

传入driver对象以及链接(支持链接的一部分),查找是不是有能复用的tab而无需创建新的。
如果需要获取多个tab对象,请使用下面的get_tabs函数防止重复获取

def get_tabs(driver, *urls):selectedTab = []tabs = []tab_ids = driver.tab_idsfor url in urls:retTab = Nonefor tab_id in tab_ids:this_tab = driver.get_tab(tab_id)if url in this_tab.url and this_tab not in selectedTab:retTab = this_tabbreakif not retTab:for tab_id in tab_ids:this_tab = driver.get_tab(tab_id)if this_tab.url in ["about:blank", "chrome://newtab/"] and this_tab not in selectedTab:retTab = this_tabbreakif not retTab:retTab = driver.new_tab()selectedTab.append(retTab)tabs.append(retTab)return tabs# 使用 get_tabs 函数获取所有标签页
specTab, detailTab, manTab = get_tabs(driver, 'https://k.autohome.com.cn/spec/', 'https://k.autohome.com.cn/detail/', 'https://i.autohome.com.cn/')

chrome://newtab/对应谷歌新创建的页面,如果是其他浏览器请自行更换

执行Js代码

翻页到底部

driver.run_js("window.scrollTo({top: document.body.scrollHeight,behavior: 'smooth'});")
http://www.lryc.cn/news/376106.html

相关文章:

  • Java中如何调用mysql中函数
  • Huggingface-cli 登录最新版(2024)
  • Java学习 - Docker管理和容器命令 实例
  • 下载工程resources目录下的模板excel文件
  • 音频基础知识和音频指标
  • 使用Vue CLI在其他磁盘创建项目出现错误及解决
  • 关于lamda表达式的使用
  • Android替换默认的按键音
  • Windows 服务器Nginx 下载、部署、配置流程(图文教程)
  • 基于Redis实现共享session登录
  • shell函数的定义
  • vue部署宝塔nginx配置(获取用户ip地址、反代理访问api接口、websocket转发)
  • Jenkins教程-3-github自动化测试任务构建
  • 0元体验苹果macOS系统,最简单的虚拟机部署macOS教程
  • Codeforces Round 946 (Div. 3) E. Money Buys Happiness
  • Git记录 上传至Gitee
  • 笔记-前端
  • 事务AOP
  • RAM和ROM
  • 聊聊系统架构之负载均衡优化实践
  • 代码规范性思考
  • TestProject Python SDK入门
  • 服务器数据恢复—EMC Isilon存储中被误删的虚拟机数据恢复案例
  • 华为安全Security认证,你了解多少?
  • 自动驾驶规划-RTT* 算法 【免费获取Matlab代码】
  • shell编程中的运算符的讲解
  • yudao-ui-admin-vue3 nginx配置
  • vue3第四十节(pinia的用法注意事项解构store)
  • PostgreSQL源码分析——索引扫描
  • 零基础入门学用Arduino 第四部分(一)