Selenium 爬虫常用技巧(pyautogui,pyperclip )

news/2024/7/19 8:46:36 标签: selenium, 爬虫, python

1. PyautoGui常用教程(鼠标、键盘)

1.1 设置

python"># 意味着所有pyautogui的指令都要暂停一秒;其他指令不会停顿;这样做,可以防止键盘鼠标操作太快;
pyautogui.PAUSE = 1
 
# 默认这项功能为True, 这项功能意味着:当鼠标的指针在屏幕的最坐上方,程序会报错;目的是为了防止程序无法停止
pyautogui.FAILSAFE =False

1.2 鼠标操作

1.2.1 获取屏幕分辨率

python"># **获取屏幕分辨率**
print(pyautogui.size()) # 返回所用显示器的分辨率; 输出:Size(width=1920, height=1080)
width,height = pyautogui.size()
print(width,height) # 1920 1080

1.2.2 鼠标移动事件,以及鼠标位置

python"># 向右移动100px,向下移动500px, 这个过程持续 1 秒钟;
pyautogui.moveTo(100,300,duration=1)

print(pyautogui.position())  
# 得到当前鼠标位置;输出:Point(x=200, y=800)

1.2.3 鼠标点击操作

python"># 单击鼠标 
pyautogui.click(10,10) # 鼠标点击指定位置,默认左键 
pyautogui.click(10,10,button='left') # 单击左键
pyautogui.click(1000,300,button='right') # 单击右键 
pyautogui.click(1000,300,button='middle') # 单击中间

# 双击鼠标
pyautogui.doubleClick(10,10) # 指定位置,双击左键 
pyautogui.rightClick(10,10) # 指定位置,双击右键
pyautogui.middleClick(10,10) # 指定位置,双击中键

# 鼠标点击与释放
pyautogui.mouseDown() # 鼠标按下
pyautogui.mouseUp() # 鼠标释放

# 鼠标控制拖动事件 
pyautogui.dragTo(100,300,duration=1)
   
# 按方向拖动 向右拖动100px,向下拖动500px, 这个过程持续 1 秒钟
pyautogui.dragRel(100,500,duration=4) # 第一个参数是左右移动像素值,第二个是上下

# 鼠标滚轮
# 控制鼠标滚动的函数是scroll(), 传入一个整数的参数,说明向上或向下滚动多少个单位;单位根据操作系统不同而不同
pyautogui.scroll(300) # 向下滚动300个单位;

1.3 键盘操作

键盘输入函数

  • pyautogui.keyDown() : 模拟按键按下; pyautogui.keyUp() : 模拟按键释放;
  • pyautogui.press() : # 就是调用keyDown() & keyUp(),模拟一次按键;
  • pyautogui.typewrite(‘this’,0.5) : 第一参数是输入内容,第二个参数是每个字符间的间隔时间;
  • pyautogui.typewrite([‘T’,‘h’,‘i’,‘s’]):typewrite 还可以传入单字母的列表;
python"># 键盘事件
pyautogui.keyDown('shift') # 按下shift
pyautogui.press('4') # 按下 4 
pyautogui.keyUp('shift') # 释放 shift

# 缓慢输出
pyautogui.typewrite('$*……%……¥', 0.5)

# 键盘特殊顺序输出
pyautogui.typewrite(['T','i','s','left','left','h',])   # 输出:This

# 快捷键
pyautogui.keyDown('ctrl')
pyautogui.keyDown('c')
pyautogui.keyUp('c')
pyautogui.keyUp('ctrl')

# 组合键
pyautogui.hotkey('ctrl','c')

1.4 屏幕处理

屏幕截图,pyautogui提供了一个方法screenshot(),可以返回一个Pillow的image对象

python">im = pyautogui.screenshot() # 返回屏幕的截图,是一个Pillow的image对象
im.getpixel((500, 500)) # 返回im对象上,(500,500)这一点像素的颜色,是一个RGB元组
pyautogui.pixelMatchesColor(500,500,(12,120,400)) # 是一个对比函数,对比的是屏幕上(500,500)这一点像素的颜色,与所给的元素是否相同;

# 截图操作
im = pyautogui.screenshot() 
im.save('屏幕截图.png')

2. pyautogui无法输入中文(使用ctrl + v 粘贴命令)

pyautogui的write、typewrite、press等方法均无法输入中文,可以用pyperclip包,pyperclip.copy(‘中国’) ,然后使用pyautogui.hotkey(‘ctrl’,‘v’)来操作。记住中间要有个time.sleep(1) 停顿1秒,要不会粘贴不上去

python">pyperclip.copy('中文.pdf')
pyautogui.hotkey('ctrl', 'v')

3. 使用Python获取元素的坐标或尺寸

python">p_btn = driver.find_element(By.XPATH, '//*[@id="buttonsTr"]/td/input[9]')
p_location = p_btn.location
p_size = p_btn.size
print(p_location)
print(p_size)
p_x = p_location['x'] + p_size['width'] // 2
p_y = p_location['y'] + p_size['height'] // 2
pyautogui.moveTo(p_x + 2040, p_y + 180, duration=0.5)
pyautogui.click()
python"># 输出结果
{'y': 100, 'x': 205}
{'width': 87, 'height': 122}

http://www.niftyadmin.cn/n/174003.html

相关文章

大型企业财务从“价值反映和守护”走向“价值发掘和创造”

近日,用友在北京国家会计学院举办“智能会计 价值财务”2023企业数智化财务创新峰会 北京站。从行业场景中来、到行业场景中去,诸多业界学者、专家、企业CFO、专业媒体等一同,深度聚焦大型企业财务数智化创新应用,探索推动企业财…

【k8s】k8s部署mariadb数据库

文章目录前言:一、构建mariadb的dockerfile二、docker build打包并上传到harbor仓库三、编写yaml文件四、使用kubectl apply部署到K8s总结前言: MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 M…

d的模板别名问题

原文 struct Matrix(S, size_t M, size_t N) { }alias Vec3(S) Matrix!(S, 3, 1); void foo(U)(U v) if (is(U Vec3!S, S)) { }void bar(U)(Vec3!U v) {} void main() {import std.stdio;Vec3!float v;writeln(is(typeof(v) Vec3!S, S)); // 假// bar(v); // 错误,不能用Ma…

CHATGPT有中文在线版本吗?

ChatGPT 最近一直出现在我们的视线中,人工智能聊天机器人 ChatGPT 可以利用人工智能与用户进行对话式文字互动。它可以生成对问题的回答,生成散文文本,编写代码,进行计算,翻译信息等等。那么chatgpt国内能用吗&#xf…

QT编程从入门到精通之二十七:“第五章:Qt GUI应用程序设计”之“5.4 混合方式UI设计”之“5.4.2 创建项目并添加资源文件”

目录 第五章:Qt GUI应用程序设计 5.4 混合方式UI设计 5.4.2 创建项目并添加资源文件 第五章:Qt GUI应用程序设计 在“Qt 程序创建基础”上&#

【1626. 无矛盾的最佳球队】

来源:力扣(LeetCode) 描述: 假设你是球队的经理。对于即将到来的锦标赛,你想组合一支总体得分最高的球队。球队的得分是球队中所有球员的分数 总和 。 然而,球队中的矛盾会限制球员的发挥,所…

计算机图形学 | 搭建OpenGL环境

计算机图形学 | 搭建OpenGL环境搭建OpenGL环境GLFW构建GLFWCMake编译我们的第一个工程链接GLAD华中科技大学《计算机图形学》课程 MOOC地址:计算机图形学(HUST) 搭建OpenGL环境 GLFW 构建GLFW GLFW是一个OpenGL的C语言库,它提…

智能家居一Homekit智能吸顶灯

买灯要看什么因素 好灯具的灯光可以说是家居的“魔术师”,除了实用的照明功能外,对细节的把控也非常到位。那么该如何选到一款各方面合适的灯呢? 照度 可以简单理解为清晰度,复杂点套公式来说照度光通量(亮度&#x…