模拟人为操作并获取数据

问题

假设需要获取一个微信公众号h5应用的某些数据,而这个应用存在如下一些反爬措施,从而决定了获取数据的方式。

每一个操作都有类似埋点行为,这样即可收集每个用户的操作轨迹。通过轨迹正常与否,很容易判断一个用户是否在恶意获取数据。因此直接调用数据接口的方式就不可行了。

维护并验证用户token与微信accessCode的关系,这可是终极大招。微信code是无法模拟的,因此,获取数据的前提就很苛刻了,必须登录微信且从微信跳转到公众号h5应用。

针对这种情况,需要模拟人为操作如下流程,打开微信,打开公众号,打开h5应用,进行各种有目的性的点击、输入等。

目前面临的一个问题是:如何让pc知道点击哪里?

我这里选择PyAutoGUI,简介:PyAutoGUI一个用于自动化控制鼠标和键盘的跨平台Python模块。它可以模拟用户的输入行为,如点击、滚动、拖拽、键入等,非常适合用于自动化测试、任务自动化等场景。PyAutoGUI 提供了图像识别功能,可以匹配屏幕上的图片,并获取该图片在屏幕上的位置。

几个关注点

  • 如何确定操作坐标:为每个操作准备一张图片,识别到图片在屏幕的坐标。
  • 图片要求:图像文件应该与想在屏幕上找到的内容完全匹配。通常是截取屏幕上某个部分作为搜索目标。
  • 匹配准确性:图像识别依赖于屏幕上显示内容与提供给函数的图像完全一致。任何微小差异(如颜色变化、缩放等)都可能导致无法正确匹配。
  • 如何实现输入:用工具包实现复制粘贴,pyautogui只支持英文,需要用其他包如pyperclip。
  • 需要为每个页面操作流程编写一遍代码

目前有两种方式,方式1是通过识别屏幕中图片,确定点击屏幕位置;方式2是时限指定固定的坐标,确定点击屏幕位置。准备6台pc,屏幕配置保持一致,包括像素和亮度。在开发机截取每一步的图片,并在开发机上测试方式1,运行的没有问题。将脚本放到其他机器,均是无法识别到图片。因此基于图片的方式就不可行了。测试方式2之前,做一些准备工作,在开发机获取某个点击点在屏幕上的坐标,保持几台电脑屏幕配置一致,包括微信图标的位置一致(例如左上角第一个图标)、窗口位置大小一致(例如全屏)、窗口位置一致(例如窗口右上角对齐屏幕右上角)。在几台电脑上测试方式2,点击和输入都符合预期。因此选择坐标方式确定操作位置。

接下来面临的一个问题:如何获取数据接口返回数据?

数据处理后最终都是结构化的。观察接口返回数据已经是结构化的,那么直接获取接口返回值并落库,后续可以解析报文并结构化存储。此时,需要考虑如何获取到http请求的报文。因此需要使用网络代理了。对网络代理要求,free,可编写脚本,可连接数据库和redis,编写脚本还得简单。我选择了mitmproxy,满足要求,不仅free而且用py写脚本。

解决

解决以上几个主要问题,基本选型已经确定,可以绘制主要模块交互图。

选型为:windows、python、PyAutoGUI、pyperclip、redis、mysql、mitmproxy。

其他需要考虑的:定时任务调度,任务驱动,pc间数据隔离。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/21664.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Spring Cloud Alibaba】开源组件Nacos及安装与配置

目录 什么是NacosNacos的关键特性服务发现和服务健康监测动态配置服务动态 DNS 服务服务及其元数据管理 Nacos的架构Nacos的用户Nacos的安装预备环境准备安装方式有两种:源码安装和下载编译好的安装包Nacos 支持三种部署模式,分别是单机、集群和多集群。…

性能飙升50%,react-virtualized-list如何优化大数据集滚动渲染

在处理大规模数据集渲染时,前端性能常常面临巨大的挑战。本文将探讨 react-virtualized-list 库如何通过虚拟化技术和 Intersection Observer API,实现前端渲染性能飙升 50% 的突破!除此之外,我们一同探究下该库还支持哪些新的特性…

【Git篇 二】idea中使用git合并分支(拉取分支)

idea中使用git合并分支 前言idea使用git合并分支1) 将主分支(master)更新到自己的分支(dev)① checkout到自己分支② 目标分支(dev)更新到当前分支(dev_KC240524)③ 当前分支出现“绿…

【Python】 Python网络请求库大比拼:urllib、urllib2、urllib3与requests

基本原理 在Python中,进行网络请求是常见的任务之一,无论是下载网页内容、获取API数据还是进行文件上传。Python社区提供了多种库来帮助开发者完成这些任务。其中,urllib、urllib2、urllib3和requests是最为流行的几个。了解它们之间的区别对…

促进设备缺陷闭环管理,引入智能巡检系统正当时

经过近些年的应用与发展,智能巡检系统的功能与可操作性已经非常成熟,在巡检工作整合管理、与其他系统调用对接、促进设备缺陷闭环管理方面的优秀表现,使其在安全管理工作中的发挥了超预期的工具价值。 一、巡检工作整合管理 设备巡检管理、安…

QT 编译Lua 动态库,使用Lua脚本混合编程

一,编译Lua动态库 1,下载lua源码 地址:Lua: downloadhttps://www.lua.org/download.html 2,配置 解压lua源码压缩包,里面有个src文件夹,里面的代码就是lua的源码

Paper Survey——3DGS-SLAM

之前博客对多个3DGS SLAM的工作进行了复现及代码解读 学习笔记之——3DGS-SLAM系列代码解读_gs slam-CSDN博客文章浏览阅读1.9k次,点赞15次,收藏45次。最近对一系列基于3D Gaussian Splatting(3DGS)SLAM的工作的源码进行了测试与…

广东肇庆mes系统服务商 盈致科技

广东肇庆MES系统服务商盈致科技为企业提供专业的MES系统解决方案,帮助企业实现生产过程的数字化管理和优化。盈致科技的服务包括但不限于以下方面:MES系统定制开发:盈致科技可以根据企业的实际需求定制开发MES系统,满足企业特定的…

《猎杀:对决》是适合什么样的人玩 Mac电脑怎么玩《猎杀:对决》

《猎杀:对决》是一款集合了生存、竞技和恐怖元素的多人在线游戏,自推出以来受到了广大玩家的热爱。本文将详细探讨《猎杀:对决》适合什么样的人玩以及Mac电脑怎么玩《猎杀:对决》。本文将一一解析,帮助你了解这款游戏是…

maven中央仓库手动下载到本地仓库

1.maven中央仓库网址 maven中央仓库 2.搜索需要的jar包 3.点击坐标mybatis坐标进入 4.winR输入cmd打开命令窗口 mvn dependency:get -DremoteRepositoriesurl -DgroupIdgroupId -DartifactIdartifactId -Dversionversion5.maven本地仓库

判断JavaScript对象是否为空,最佳方法与性能对比

引言:在日常开发中,你是否经常需要判断一个对象是否为空?你知道有哪些高效的方法可以做到这一点吗?今天,我们不仅要探讨这些方法,还要通过性能对比找出最优解。快来看看,你平常用的方法是最佳选…

Python基础教程 第2版 PDF下载

Python基础教程 第2版 PDF下载 在数字时代的浪潮中,Python已成为众多程序员和数据分析师的首选编程语言。对于初学者来说,一本好的Python教程无疑是开启编程之门的金钥匙。本文将为您介绍如何下载《Python基础教程 第2版》的PDF版本,并从四个…

02_初识Nginx

文章目录 一、基础知识1.1 什么是代理服务器1.2 正向代理概述1.3 反向代理概述1.4 负载均衡1.5 动静分离 二、Nginx2.1 Nginx是什么2.2 Nginx的特点2.3 Nginx负载均衡策略2.4 Nginx的Master-Worker模式 参考链接 一、基础知识 1.1 什么是代理服务器 在最简单的场景下&#xf…

Linux安装gpu驱动

安装rpm包 进入官网 ,选择机器的配置和环境。 下载完rpm之后,运行下面的命令。 i) sudo rpm -i nvidia-driver-local-repo-rhel8-550.54.15-1.0-1.x86_64.rpm ii) sudo dnf clean all iii) sudo dnf -y module install nvidia-driver:latest-dkms 安…

数据中心监控管理的实践方案

数据中心是信息存储和处理的核心,扮演着至关重要的角色2。然而,随着数据量的迅速增长,数据中心的监控和管理也变得愈发复杂和重要。保障数据中心的高效运作和安全性,依靠传统的管理方式远远不够。 实时监控数据中心的各项指标&am…

2024/5/30

In recent weeks, Target and Aldi have broadcast price cuts on thousands of items, while Walmart unveiled a new private label lineup of quality “chef-inspired food” mostly in the $5-and-under range. The shift comes as U.S. consumers have been signaling th…

煤矿塌陷位移监测站-全天候监测

TH-WY1煤矿塌陷位移监测站,作为矿山安全监测系统的重要组成部分,其设计、构建和功能均针对煤矿塌陷等地质灾害的实时监测与预警。 煤矿塌陷位移监测站,简称位移监测站,是一种利用先进传感器和仪器设备,对煤矿及周边区…

QML信号连接到c++的槽函数(五)

文章目录 前言一、QML Signal and Handler Event System二、QML信号连接到c++的槽函数代码实例1. 创建一个QML 工程2. 用C++ 实现一个QML Types3. 代码实例4. 运行结果总结参考资料前言 本文主要介绍,如何将QML 中的信号连接到C++ 中的槽函数 软硬件环境: 硬件:PC 软件:wi…

react 使用 富文本编辑器并支持MD,同时支持<Form.Item/>的可控输入

1.分析 <Form.Item label"id" name"id" hidden><Input /> </Form.Item>在react ant 使用中&#xff0c;我们可以看到&#xff0c;Input 输入变化后&#xff0c;值会自动绑定到form实例上&#xff0c;同时&#xff0c;form set值以后&am…

如何用行列视(RCV)获取指标测点当前值

行列视&#xff08;RCV&#xff09;是一款面向生产型企业的综合性数据应用系统&#xff0c;它专注于解决生产领域的指标治理、指标整合以及报表可视化等问题。该系统提供了生产指标统计、指标治理、生产数据整合、生产报表制作以及基于表格的数据分析等一整套功能。因此&#x…