爬取网页时,通过pyautogui定位鼠标坐标并操作

1、定位鼠标坐标

import pyautogui

time.sleep(5)
x,y = pyautogui.position()
print('鼠标位置:x=%d,y=%d'%(x,y))

2、定位到坐标后,进行操作

import pyautogui
import time
 
# 正负数 表示向上或向下 数值越大滚动幅度越大
pyautogui.scroll(200)  # 向上滚动
sleep(5)
pyautogui.scroll(-200)  # 向下滚动
 
sleep(5)
# 鼠标移动位置 x表横坐标, y表示纵坐标 单位像素, duration表示移动速度
pyautogui.moveTo(x=1300, y=250, duration=2)
 
sleep(5)
# 鼠标左击一下 x表横坐标, y表示纵坐标 单位像素, button=left 表示左键
pyautogui.click(x=738, y=223, button='left')
 
sleep(5)
# 发送英文字符,不支持中文字符
pyautogui.typewrite('hello world')
 
sleep(5)
# 启动键盘热键 粘贴功能
pyautogui.hotkey('ctrl', 'v')

3、备注

使用selelnium模拟浏览器时,最好添加浏览器最大化这一步骤:

driver.maximize_window()

4、实战:爬取扇贝在学单词表

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import pyautogui
import time
import xlwt

# 登陆扇贝(通过微信扫码登陆)
driver = webdriver.Chrome()
url = "https://web.shanbay.com/web/account/login/"
driver.get(url)
driver.maximize_window()
微信登陆按钮 = driver.find_element_by_xpath('//div[@class="third-party-box"]/div[1]/a')
微信登陆按钮.send_keys(Keys.ENTER)
driver.implicitly_wait(5)

# 进入需要爬取的页面(词表--在学单词)
词表按钮 = driver.find_element_by_xpath('//div[@class="index_status__15KG5"]/a')
词表按钮.send_keys(Keys.ENTER)
# 通过鼠标定位获得“在学单词”位置,并点击
pyautogui.click(x=691,y=527,button="left")

# 创建数据容器,以便后续导入excel中
word_list = []
translate_list = []

# 爬取当前页的数据(翻页部分需手动点击“下一页”)
num = input('请输入总页数:')
num = int(num)
for page in range(1,num+1):
    words = driver.find_elements_by_xpath('//div[@class="index_top__1grCv"]/div[1]')
    translates = driver.find_elements_by_xpath('//div[@class="index_bottom__XLoPQ"]/span[2]')

    for word in words:
        word_list.append(word.text)
    for translate in translates:
        translate_list.append(translate.text)
    print('第%d页提取完成,请在5秒内手动点击下一页!'%page)
    time.sleep(3)


#创建工作簿和工作表,并保存数据
workbook = xlwt.Workbook()
sheet = workbook.add_sheet('sheet1')

headers = ['单词','释义']
for index,header in enumerate(headers):
    sheet.write(0,index,header)
for index,word in enumerate(word_list):
    sheet.write(index+1,0,word)
for index,translate in enumerate(translate_list):
    sheet.write(index+1,1,translate)

workbook.save('扇贝在学单词表.xls')
print('所有单词提取完成!')


# 提取鼠标坐标位置的方法:
# time.sleep(5)
# x,y = pyautogui.position()
# print('鼠标位置:x=%d,y=%d'%(x,y))




  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyAutoGUI是一个Python库,用于控制鼠标和键盘的操作。它可以用于自动化任务,例如模拟鼠标点击和键盘输入。关于鼠标相对坐标PyAutoGUI提供了一些方法来获取和操作鼠标的位置。 1. `position()`方法可以返回当前鼠标的绝对坐标位置。例如: ```python import pyautogui # 获取当前鼠标的绝对坐标位置 x, y = pyautogui.position() print("当前鼠标的绝对坐标位置:", x, y) ``` 2. `size()`方法可以返回当前屏幕的分辨率大小。例如: ```python import pyautogui # 获取当前屏幕的分辨率大小 width, height = pyautogui.size() print("当前屏幕的分辨率大小:", width, height) ``` 3. `onScreen(x, y)`方法可以判断给定的坐标是否在屏幕范围内。例如: ```python import pyautogui # 判断给定的坐标是否在屏幕范围内 x, y = 100, 200 if pyautogui.onScreen(x, y): print("坐标({},{})在屏幕范围内".format(x, y)) else: print("坐标({},{})不在屏幕范围内".format(x, y)) ``` 4. `move(x, y)`方法可以将鼠标相对于当前位置移动到指定的坐标位置。例如: ```python import pyautogui # 将鼠标相对于当前位置移动到指定的坐标位置 x, y = 100, 200 pyautogui.move(x, y) ``` 5. `moveTo(x, y)`方法可以将鼠标移动到屏幕上的绝对坐标位置。例如: ```python import pyautogui # 将鼠标移动到屏幕上的绝对坐标位置 x, y = 100, 200 pyautogui.moveTo(x, y) ``` 这些方法可以帮助你获取和操作鼠标的相对坐标。你可以根据需要使用这些方法来控制鼠标的移动和点击操作

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值