python自动化操作, 三种方法解决滑动模块问题(后二种可跳过90%滑动,限制需要打开浏览器)

2023-11-10

selenium + win32api + pyautogui

元素定位(可无头进行访问,但是会被检测,基本用不了)

sli_ele = driver.find_element(By.XPATH, '//span[@id="nc_1_n1z"]')#xpath 定位

if sli_ele.is_displayed():
    ActionChains(driver).click_and_hold(on_element=sli_ele).perform()#长按左键
    ActionChains(driver).move_by_offset(xoffset=260, yoffset=0).perform()#拖拽到指定位置
    time.sleep(2)
    ActionChains(driver).pause(0.5).release().perform() #执行
    time.sleep(2)

win32api(拖拽方式,mac系统不可用)

 win32api.SetCursorPos((450, 410))#定位坐标
 time.sleep(2)
 win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 450, 410)  # 点击
 time.sleep(0.5)

 win32api.mouse_event(win32con.MOUSEEVENTF_MOVE, 300, 0)  # 移动
 time.sleep(1)
 win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0)  # 松开鼠标

pyautogui模块(局限需要开启浏览器进行滑动,暂时看支持mac和windows,要比wei32好)

 pyautogui.PAUSE = 1  # 调用在执行动作后暂停的秒数,只能在执行一些pyautogui动作后才能使用,建议用time.sleep
 pyautogui.FAILSAFE = False
 
 x,y = pyautogui.locateCenterOnScreen("aj.png", confidence=0.8)  #打开图片,进行写,y定位
 print(x,y)
 pyautogui.moveTo(x,y, duration=1)  #定位元素 可以将x,y写入,duration 是移动时间
 pyautogui.mouseDown()  #长按左键
 pyautogui.dragTo(x,random.choice([450,550]), duration=0.5,button='left') #进行滑动移动,y可以写死也可以写随机数,duration移动时间,button是mac系统需要填写

代码

import re
import os
import time
import random
import pyautogui
from lxml import etree
from selenium import webdriver

def drivers(headless=None,procxy=None,time=30):
    '''
        初始化driver
    '''


    option = webdriver.ChromeOptions()
    option.add_argument('--headless')
    option.add_argument('disable-infobars')
    option.add_argument('--disable-gpu')
    option.add_argument('--lang=zh-cn')
    option.add_argument('--no-sandbox')
    option.add_argument('disable-dev-shm-usage')
    option.add_argument("--no-sandbox")
    option.add_argument("--disable-dev-shm-usage")
    option.add_argument("--window-size=1920x1080")
    option.add_argument("start-maximised")
    option.add_experimental_option('excludeSwitches', ['enable-automation'])
    option.add_argument("--disable-blink-features=AutomationControlled")
    # option.add_argument('--proxy-server=' + get_procxy()["http"])
    driver = webdriver.Chrome(options=option)
    driver.set_page_load_timeout(time)
    driver.set_script_timeout(40)

    # 全屏,为了方便点击,有些页面由于不是自适应所有全屏操作更为保险
    # driver.maximize_window()
    return driver
def action(url):
    driver.get(url)
    time.sleep(5)
    driver.implicitly_wait(10)

    resp_html = driver.execute_script("return document.documentElement.outerHTML")
    sli_ele = driver.find_element(By.XPATH, '//span[@id="nc_1_n1z"]')

    if sli_ele.is_displayed():
        ActionChains(driver).click_and_hold(on_element=sli_ele).perform()
        ActionChains(driver).move_by_offset(xoffset=260, yoffset=0).perform()
        time.sleep(2)
        ActionChains(driver).pause(0.5).release().perform()
        time.sleep(2)

if __name__ == '__main__':
	url = 'qwertyuiopasdfghjkl;zxcvbnm,'  #你懂的
    driver = drivers()
    driver.get(url)
    res = driver.execute_script("return document.documentElement.outerHTML")
    resp_url_list = res.xpath('//div[@class="wow zoomIn centerList el-col el-col-12"]/a/@href')
	print(resp_url_list)
	driver.quit()

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python自动化操作, 三种方法解决滑动模块问题(后二种可跳过90%滑动,限制需要打开浏览器) 的相关文章

  • Django:将博客条目查看次数增加一。这有效率吗?

    我的索引视图中有以下代码 latest entry list Entry objects filter is published True order by date published 10 for entry in latest ent
  • Pandas 字符串提取所有匹配项

    我正在学习 pandas 系列字符串方法中的正则表达式操作 我能够从字符串中提取第一个数字 但我的正则表达式与第二个数字不匹配 如何捕获这两个数字 注意第二行 第二个元素在这里是 NAN CODE import pandas as pd d
  • 在 Python 中绘制分类数据的三个维度

    我的数据包含三个我试图可视化的分类变量 城市 五个之一 职业 四种之一 血型 四种之一 到目前为止 我已经成功地以一种我认为易于使用的方式对数据进行了分组 import numpy as np pandas as pd Make data
  • 使用 Pymongo 从 Windows 连接到 AWS 实例上的 MongoDB

    此行反复抛出错误 client MongoClient ec2 12 345 67 89 us east 2 compute amazonaws com 27017 ssl True ssl keyfile C mongo pem 由于显而
  • 小数缓存是Python规范中定义的还是一个实现细节?

    Python 似乎有一个所谓的 小数字缓存 用于存储 5 到 256 范围内的数字 我们可以使用以下程序来演示这一点 for i in range 7 258 if id i id i 0 print i is cached else pr
  • Django 未在 404 页面上应用应用程序中的 CSS 文件

    姜戈3 0 8 Python 3 7 x 我有一个包含一些应用程序的 Django 项目 我正在尝试为 400 403 404 500 错误制作一些 默认 错误页面 我已经这样做了 并显示了适当的模板 但没有任何样式或 JS 在 404 错
  • Windows Defender 检测 Python EXE 为木马

    我制作了一个 Python 脚本 将 Windows 目录以 zip 形式邮寄给我 我使用 sched 模块添加了一个调度程序 每小时重复一次 我试图制作一个简单的同步应用程序供个人使用 在 Windows 启动时启动 我使用将其转换为 e
  • 检测/删除 Python 2 + GTK 中不成对的代理字符

    在Python 2 7中我可以成功转换Unicode字符串 abc udc34xyz 转换为 UTF 8 结果是 abc xed xb0 xb4xyz 但是当我将 UTF 8 字符串传递给例如时 pango parse markup or
  • 从主机名中提取域名

    是否有一种编程方式可以从给定的主机名查找域名 给出 gt www yahoo co jp 返回 gt yahoo co jp 有效但非常慢的方法是 拆分为 并从左侧删除 1 个组 使用 dnspython 加入并查询 SOA 记录 当返回有
  • 如何在Python中求和

    我想知道如何在 python 中表示总和而不需要像这样的循环here http docs scipy org doc scipy reference tutorial optimize html 我们有 def rosen x The Ro
  • PyCharm 无法识别字典值类型

    我有一个简单的代码片段 其中我将字典值设置为空列表 new dict for i in range 1 13 new dict i 现在 如果在下一行的循环内我会输入new dict i 并添加一个点 我希望 PyCharm 向我显示可用于
  • 根据给定列表中的值替换列中的值[重复]

    这个问题在这里已经有答案了 我在数据框中有一列 仅允许定义列表中存在的值 例如 给定列表 l1 1 2 5 6 如果列表中不存在列中的值 我需要将每个值替换为 0 column Expected column 1 1 5 5 2 2 3 0
  • 使 np.loadtxt 使用多个可能的分隔符

    我有一个程序可以读取数据文件 用户可以选择他们想要使用的列 我希望它对于输入文件更加通用 有时 列可能如下所示 10 34 24 58 8 284 6 121 有时它们可 能看起来像这样 10 34 24 58 8 284 6 121 我希
  • 在python中安装scipy模块时出错

    我正在尝试使用 pip 在 python 中安装 scipy 模块 它显示以下错误 Command c users sony appdata local programs python python35 32 python exe u c
  • Scrapy的redirect_urls异常.KeyError

    我是 Scrapy 和 Python 的新手 最近推出了我的第一个蜘蛛 有一个功能似乎以前有效 但现在它只适用于我试图废弃的一些网站 代码行是 item url direct response request meta redirect u
  • 使用 statsmodels.formula.api 中的 ols - 如何删除常数项?

    我正在遵循第一个例子statsmodels教程 http statsmodels sourceforge net devel http statsmodels sourceforge net devel 如何指定在 ols 中不使用常数项进
  • 如何限制scrapy请求对象?

    所以我有一个蜘蛛 我认为它正在泄漏内存 结果当我检查 telnet 控制台 gt gt gt prefs 时 它只是从链接丰富的页面中抓取了太多链接 有时它会超过 100 000 个 现在我已经一遍又一遍地浏览文档和谷歌 但我找不到一种方法
  • Scrapy 抓取并跟踪 href 中的链接

    我对 scrapy 很陌生 我需要从 url 的主页跟踪 href 到多个深度 再次在 href 链接内我有多个 href 我需要遵循这些href 直到到达我想要抓取的页面 我的页面的示例 html 是 初始页 div class page
  • Flask 扩展未在 app.extensions 中注册

    我想访问在我的 Flask 应用程序上注册的一些扩展 我尝试使用app extensions 但我初始化的一些扩展不在字典中 from flask import current app current app extensions get
  • 在多个图表上绘制一条线

    I don t know how this thing is called or even how to describe it so the title may be a little bit misleading The first a

随机推荐

  • 高德地图轨迹回放,消息框内展示车辆速度且随车辆移动-升级支持调整速度、回放进度

    使用高德地图回放车辆GPS轨迹 并添加速度和回放进度条 并支持调整 效果如下 新增的功能 在基础版本 有如下升级 速度条 可以拖动以调整车辆回放速度 且从当前位置继续回放 进度条 进度条表示车辆已回放的百分比 且拖动进度条车辆定位到相应的位
  • 数论整理之特殊数one:斐波那契数列

    数论整理 特殊数方面 p s 黄金分割0 6180339887 斐波那契数列 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28
  • Vue Element-ui表单校验规则

    1 前言 Element ui表单校验规则 使得错误提示可以直接在form item下面显示 无需弹出框 因此还是很好用的 我在做了登录页面的表单校验后 一度以为我已经很了解表单的校验规则 但我在深入使用表单校验规则时 遇到下列问题 如何判
  • 云服务器会获取系统信息吗,查看当前服务器信息

    查看当前服务器信息 内容精选 换一换 安装并启动Agent后 迁移Agent会自动收集源端服务器信息并发送给主机迁移服务默认迁移任务下 收集的所有信息仅用于数据迁移 不会用做其他用途 具体收集源端哪些信息可查看主机迁移服务会收集源端的哪些信
  • AbstractMethodError: abstract method "void android.telephony.TelephonyManager$CellInfoCallback.on...

    一 Error现象 应用开启混淆后 APP在Android 10及以上机型上的部分页面会闪退 二 Error日志摘要 java lang AbstractMethodError abstract method void android te
  • LWIP协议栈实现裸机WEB服务器与客户端浏览器通信——新浪博客迁移

    领悟得有些缓慢 理清一下思路和头绪 才能继续更好的写程序 时间不等人啊 这篇博文是准备在前两天就编辑发出来的 吃完饭回来 上淘宝买点东西出问题了 等到现在才编完 准确的说是边聊天边编辑完了的 以前学习过程中搜索的一些笔记资料都是新浪博文或者
  • Text2Cypher:大语言模型驱动的图查询生成

    话接上文 图技术在 LLM 下的应用 知识图谱驱动的大语言模型 Llama Index 同大家简单介绍过 LLM 和图 知识图谱相关的结合 现在我来和大家分享下最新的成果 毕竟 从 GPT 3 开始展现出超出预期的 理解能力 开始 我一直在
  • 图灵聊天机器人API1.0与API2.0的使用方法

    转 https blog csdn net www rsqdz net article details 79680461 https blog csdn net qq 42292831 article details 88677623 思维
  • 业内人员告诉你银行测试到底做什么,怎么进银行测试.....

    前言 从一家工作了五年的软件公司的测试管理者跳槽到银行做软件测试 短短两个月 对银行测试有了初步认识 总结和记录下来 加深个人的理解 同时也共享给各位 银行作为大家的理财顾问 对金钱非常敏感 频繁甚至偶尔出现的软件故障都会打击顾客的信心 如
  • SCDN如何有效防御CC攻击和DDOS攻击的

    SCDN是由阿里云提供的一整套安全加速的解决方案 可以根据业务需求去进行定制 在防护效果上 最低防护20gbps 300gbps 当然定制版的防护最高可达到600gbps 在网络上我们常见的网络攻击就是CC攻击和DDOS攻击了 那么CC攻击
  • 数据库基本操作(持续更新ing)

    SQL语句基本类型 CRUD 增加 Create 查询 Retrieve 更新 Update 删除 Delete 创建数据库 CREATE DATABASE 数据库名 删除数据库 DROP DATABASE 数据库名 切换数据库 USE 数
  • ArcGIS Runtime for Android天地图底图及TPK数据包放大后数据不显示问题

    环境 ArcGIS Runtime for Android版本 100 14 0 底图放大不显示的原因 在天地图url的配置中配置了更高level的url 但没有实际的数据 或url返回了 解决方法 不配置没有数据的level的url TP
  • 平稳过程的各态历经性

    平稳过程的各态历经性 1 各态历经的定义 2 例题 2 1 例1 2 2例2 3 各态历经性的判定 1 各态历经的定义 如果一个随机过程是平稳的 而且是均值和相关函数都具有各态历经性 那么我们称这个平稳过程具有各态历经性 均值各态历经的定义
  • Ubuntu ssh 访问服务器失败

    今天用ssh 登录交换机的时候发现访问不了 一直报no matching key exchange method found ccchw ccchw HP Compaq Elite 8300 CMT ssh ssh itte 10 163
  • K210图像检测&(1~8)数字卡片识别

    前言 第一次使用该平台 想先找一个简单的识别 来走走流程 就想到了 前几年的送药小车的数字卡片识别 花了半天收集标记图片 在运行时要注意摄像头与数字卡片的高度 不过也有些不足 可能是收集某个数字的训练集的时候 拍摄高度 不一致 因为是手拍
  • C++之引用类型,深浅拷贝构造

    引用类型 给内存段取别名 int m 10 引用 给内存段取别名 所以需要给他一段内存段 而不只是声明 int n m 不是赋值的意思 是别名的意思 想要在被调函数中修改主调函数中定义的变量的值时 不需要将其地址传输给被调函数 直接传输变量
  • IDEA 使用技巧(快速生成xml文件)

    settiings 搜索File 找到 File and Code Templates 点击加号新建一个 Name 输入文件名 Extension 输入文件类型
  • PCL 生成空间直线点云

    目录 一 算法原理 二 代码实现 三 结果展示 一 算法原理 已知直线上一点和直线的方向向量 即可根据数学原理生成用于算法测试的标准直线点云 以下示例代码中 以直线上一点为中心点生成空间直线点云 其中点的个数为100个 相邻点之间的间隔为0
  • 微信小程序的的图片显示不出来

    图片的路径分两种 1 本地的图片如images文件夹下面的 images t1 jpg 或者是http localhost 8080 Teacher news t1 jpg 2 网络连接的图片http www baidu com vue n
  • python自动化操作, 三种方法解决滑动模块问题(后二种可跳过90%滑动,限制需要打开浏览器)

    selenium win32api pyautogui 元素定位 可无头进行访问 但是会被检测 基本用不了 sli ele driver find element By XPATH span id nc 1 n1z xpath 定位 if