首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

深入探讨 Puppeteer 如何使用 X 和 Y 坐标实现鼠标移动

在众多的自动化工具中,Puppeteer作为一个无头浏览器控制库,以其强大的功能和灵活的 API 赢得了开发者的青睐。...本文将深入探讨 Puppeteer 如何通过X 和 Y 坐标精准实现鼠标移动,并结合实际案例展示如何采集小红书网站的内容。...这就要求我们在代码中实现:模拟人类鼠标移动:基于 X 和 Y 坐标的动态轨迹。代理 IP 技术:隐藏爬虫的真实 IP。自定义请求头:包括 User-Agent 和 Cookie。...解决方案Puppeteer 的鼠标移动 APIPuppeteer 提供了 page.mouse.move(x, y, options) 方法来实现鼠标移动。...结论通过结合 Puppeteer 的强大功能,我们不仅实现了对 X 和 Y 坐标的鼠标轨迹模拟,还在代码中整合了代理 IP 技术、Cookie 和 User-Agent 的设置。

12510
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    LeetCode动画 | 218.天际线问题

    天际线 每个建筑物的几何信息用三元组 [Li,Ri,Hi] 表示,其中 Li 和 Ri 分别是第 i 座建筑物左右边缘的 x 坐标,Hi 是其高度。...输出是以 [ [x1,y1], [x2, y2], [x3, y3], … ] 格式的“关键点”(图B中的红点)的列表,它们唯一地定义了天际线。关键点是水平线段的左端点。...说明: 任何输入列表中的建筑物数量保证在 [0, 10000] 范围内。 输入列表已经按左 x 坐标 Li 进行升序排列。 输出列表必须按 x 位排序。...因为高度入堆的时候,获取这个堆的最大值,判断一下最大值是否和前一关键点的当前高度是否相等,如果不相等,说明这是一个拐点,也是天际线的关键点,然后更新当前高度,即当前高度等于最大值; 高度出堆的时候,将这个高度从堆中删除...,接着获取这个堆中的最大值,判断一下这个最大值和前一关键点的当前高度是否相等,如果不相等,说明这也是一个拐点。

    1.1K10

    ☆打卡算法☆LeetCode 218. 天际线问题 算法解析

    一、题目 1、算法题目 “给定所有建筑物的位置和高度,返回这些建筑物形成的天际线。” 题目链接: 来源:力扣(LeetCode) 链接: 218....天际线问题 - 力扣(LeetCode) 2、题目描述 城市的 天际线 是从远处观看该城市中所有建筑物形成的轮廓的外部轮廓。给你所有建筑物的位置和高度,请返回 由这些建筑物形成的 天际线 。...天际线 应该表示为由 “关键点” 组成的列表,格式 [[x1,y1],[x2,y2],...] ,并按 x 坐标 进行 排序 。关键点是水平线段的左端点。...列表中最后一个点是最右侧建筑物的终点,y 坐标始终为 0 ,仅用于标记天际线的终点。此外,任何两个相邻建筑物之间的地面都应被视为天际线轮廓的一部分。 注意:输出天际线中不得有连续的相同高度的水平线。...图 B 中的红点表示输出列表中的关键点。

    48420

    Java 通过向量,计算移动方向,计算线段角度等

    在三维空间中,向量通常表示为一个有序的三元组(x, y, z),其中x、y和z分别表示向量在x、y和z轴上的分量。 我们可以通过计算线段的向量,来判断手指(鼠标)在屏幕中的移动方向。速度等信息。...而我们如何通过坐标获取线段的向量呢?很简单x1-x2 就是向量x,y1-y2就是向量y。...return degrees; } 在这个方法中,我们传入的坐标点的Y值的大小,决定了角度的正负数。 如果p1的Y值大于p2,返回的就是:-179°~0 中间的值。...通过向量和角度,计算两个线条的夹角 在前面,我们计算了如何获取线条和X轴的夹角。我们如果有两条线段,那么如何获取这两条线段的夹角呢?...你会发现计算角度等会很方便 Math.atan2() 方法返回从 X 轴到指定坐标点 (x,y) 之间的角度(以弧度为单位)。它是 Math.atan(y/x)的安全版,可以避免除数为 0 的情况。

    81540

    OpenCV 图像分析之 —— 霍夫变换(Hough Transform)

    霍夫线变换 在笛卡尔坐标系下存在很多直线,直线可以用点截式表示,假设笛卡尔坐标下的两个点A=(X_1,Y_1)和B=(X_2,Y_2): 在笛卡尔坐标系下两点确定的直线为 y=kx+q,考虑已知的 A...theta), round(rho)) += 1 找到 H 中局部最大值的点 将点 (\theta, \rho) 转换为图像中的直线 \rho=x \cos \theta+y \sin \theta...粗略解释的话,就是如果你想尝试用完全类似的方法去做,就要从累加平面变成累加三维的体积,三维坐标分别是圆心的位置x、y和圆的半径r。但这样做意味着更大的内存需求和更慢的速度。...粗略解释的话,就是如果你想尝试用完全类似的方法去做,就要从累加平面变成累加三维的体积,三维坐标分别是圆心的位置x、y和圆的半径r。但这样做意味着更大的内存需求和更慢的速度。...对于每个圆心,考虑所有非零像素点(之前已经构建好该列表),将这些像素根据离圆心的距离排序。从最小距离到最大半径中选择一个最好的值作为圆的半径。

    5K10

    理解点线拓扑关系的计算原理

    : 把两点名为 A 和 B 我们用从 A 画的垂直线和从 B 画的水平线,形成一个直角三角形。...对于矩形不相交,有下面两种情况: 对于上面两种情况,可以分成四类来讨论: ①AB两坐标中最大的x值 小于 CD两坐标中最小x值 ②CD两坐标中最大的x值 小于 AB两坐标中最小x值 ③AB两坐标中最大的...y值 小于 CD两坐标中最小y值 ④CD两坐标中最大的y值 小于 AB两坐标中最小y值 只要满足了以上四种的其中一种,就可以认为AB与CD不相交。...根据上面的公式和右手螺旋法则: 左边是“左手法则”, 右边是“右手法则”, 用手表示为下图: 如果相交,AB X AC的z坐标值z1与AB X AD的z坐标值z2必然异号;同样的,DC X DA的z...:= a1*b1 < 0 && a2*b2 < 0 return isCross } // IsPointOnLine 判断点是否在线段上, 返回值 > 0 在右侧, = 0 在线上, < 0

    76710

    霍夫变换

    1.直线检测 1.1  直线坐标参数空间 在图像x-y坐标空间中,经过点(xi,yi)的直线表示为: x−y x−y 坐标空间中,经过点(x i ,y i ) (xi,yi) 的直线表示为:y i =ax...这个变换就是直角坐标中对于(xi,yi)点的Hough变换。(x i ,y i ) (xi,yi) 点的Hough变换。a−b a−b 。...这个变换就是直角坐标中对于(x i ,y i ) (xi,yi) 点的Hough变换。 该直线是图像坐标空间中的点(xi,yi)在参数空间的唯一方程。...它首先选取该形状中的任意点(a,b)为参考点,然后从该任意形状图形的边缘每一点上,计算其切线方向Φ和到参考点(a,b)位置的偏移适量r,以及r与x轴的夹角α。...返回值: ·lines是一个结构体数组,数组长度是找到的直线条数,而每一个数组元素(直线段结构体)的内部结构如下: 域 含义 point1 直线段的端点1 point2 直线段的端点2 thea 对应在霍夫矩阵中的

    1.8K30

    ArcEngine三维开发时如何在ArcSceneControl中获取实时x,y,z坐标并显示到状态栏(也就是基于ArcObjects开发)

    在基于ArcEngine的三维开发时,如何在ArcSceneControl中获取实时x,y,z坐标并显示到状态栏: 很明显,要让鼠标在三维场景视图ArcSceneControl中移动时,在状态栏实时显示...xyz坐标,肯定要用到的是OnMouseMove事件。...首先添加该事件,然后在状态栏添加三个显示坐标值的控件,可以是文本框、标签等,能显示坐标文本就行了。这里就不赘述了,比较简单。...下面看最核心的代码,就是如何获取xyz坐标值:             barEditItemX.EditValue = "";             barEditItemY.EditValue =...e.y, esriScenePickMode.esriScenePickAll, false, out pHit3Dset); pHit3Dset.OnePerLayer();

    1.5K30

    文心一言 VS 讯飞星火 VS chatgpt (199)-- 算法导论14.3 7题

    七、用go语言,VLSI数据库通常将一块集成电路表示成一组矩形,假设每个矩形的边都平行于x轴或者y轴,这样可以用矩形的最小和最大的x轴与y轴坐标来表示一个矩形。...下面是使用线段树来解决这个问题的步骤: 创建一个线段树,线段树的每个节点都存储一个矩形的最大和最小y坐标。 对每个矩形,将其最小和最大的x坐标以及对应的y坐标添加到线段树中。...栈内的矩形按照右边界从大到小排序。 3. 遍历排序后的矩形列表,对于每个矩形,执行以下操作: a....在扫描线移动过程中,通过比较相邻矩形的最大和最小x轴坐标以及y轴坐标,判断是否存在重叠的矩形。如果存在重叠的矩形,则算法返回true;否则,返回false。...然后,我们按 x 坐标对事件进行排序,并使用一个区间树来维护 y 坐标上的矩形集合。当处理每个事件时,我们检查区间树中是否有与当前矩形重叠的矩形。如果发现重叠,我们返回 true。

    11920

    我做了一个在线白板(二)

    箭头的绘制 箭头其实就是一根线段,只是一端存在两根成一定角度的小线段,给定两个端点的坐标即可绘制一条线段,关键是如何计算出另外两根小线段的坐标,箭头线段和线段的夹角我们设置为30度,长度设置为30px:...let l = 30; let deg = 30; 图片 如图所示,已知线段的两个端点坐标为:(x,y)、(tx,ty),箭头的两根小线段有一个头是和线段(tx,ty)重合的,所以我们只要求出(x1...,y1)和(x2,y2)即可。...先来看(x1,y1): 图片 首先我们可以使用Math.atan2函数计算出线段和水平线的夹角A,atan2函数可以计算任意一个点(x, y)和原点(0, 0)的连线与X轴正半轴的夹角大小,我们可以把线段的...: let _x = tx - l2 let _y = ty + l1 计算另一侧的(x2,y2)坐标也是类似,我们可以先计算出和Y轴的夹角,然后同样是勾股定理计算出对边和邻边,再使用(tx,ty)坐标相减

    1.5K31

    Java 弧度转多线段的实现与解析

    代码解析Point2D类:用于表示弧线上的点,存储点的x和y坐标。convertArcToSegments方法:核心方法,将弧度转换为多线段。...计算每个点的x和y坐标后,将其加入到一个List中,最终返回所有的点。main方法:测试用例,生成一个弧度为90度的弧,并将其近似为10条直线段。3....验证第一个点和最后一个点的坐标:assertEquals(new Point2D.Double(50.0, 0.0), points.get(0));:验证列表中的第一个点是否为圆弧的起始点,坐标为 (...public Double(double x, double y) { this.x = x; this.y = y; } }}ArcToLineSegments...验证列表中第一个点和最后一个点的坐标是否符合预期。 小结:这个测试用例的目的是确保将圆弧转换为线段的方法能够正确执行,并返回预期的点列表。

    14331

    粗略的物体碰撞预测及检测

    在一维坐标轴中,两线段A和B相交的条件是: 线段A在坐标轴上的最大值Amax不小于线段B在坐标轴上的最小值Bmin; 线段B坐标轴上的最大值Bmax...sub>min)>0   基于上述事实,二维场景中AABB碰撞检测原理: [70742987.jpg]   在上图中,分别做物体A与物体B在X,Y轴方向的投影,物体A的Y轴方向最大点坐标为Y1...,最小点坐标Y2,X轴方向最小点坐标X1,最大点坐标X2,物体B同理。...即,若Y轴方向上(Y1-Y4)*(Y3-Y2)>0,X轴方向上(X4-X1)*(X2-X3)>0,那么证明物体A与物体B发生重合,否则证明物体A和B并未发生重合。   ...实现代码如下,其中min和max数组是另一个AABB的最小点和最大点,最后返回碰撞检测结果和碰撞部分的AABB。

    1.9K60

    粗略的物体碰撞预测及检测

    在真实的物理系统中,一般需要在运算速度和精确性上做取舍。...在一维坐标轴中,两线段A和B相交的条件是: 线段A在坐标轴上的最大值Amax不小于线段B在坐标轴上的最小值Bmin; 线段B坐标轴上的最大值Bmax不小于线段A在坐标轴上的最小值Amin; 即 (Amax-Bmin...在上图中,分别做物体A与物体B在X,Y轴方向的投影,物体A的Y轴方向最大点坐标为Y1,最小点坐标Y2,X轴方向最小点坐标X1,最大点坐标X2,物体B同理。...即,若Y轴方向上(Y1-Y4)*(Y3-Y2)>0,X轴方向上(X4-X1)*(X2-X3)>0,那么证明物体A与物体B发生重合,否则证明物体A和B并未发生重合。...实现代码如下,其中min和max数组是另一个AABB的最小点和最大点,最后返回碰撞检测结果和碰撞部分的AABB。 ? ? ?

    2.8K81

    3027 线段覆盖 2

    3027 线段覆盖 2  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解  查看运行结果 题目描述 Description 数轴上有n条线段,线段的两端都是整数坐标...,坐标范围在0~1000000,每条线段有一个价值,请从n条线段中挑出若干条线段,使得这些线段两两不覆盖(端点可以重合)且线段价值之和最大。...接下来n行每行三个整数, ai bi ci,分别代表第i条线段的左端点ai,右端点bi(保证左端点和价值ci。...   然后我们想,对于每一个线段,我们有选和不选两种情况    so我们遍历所有节点,如果该节点能被访问,并且该节点贮存数组中的最大值加上我们正在dp的点的值大于原来的值。...y,z; 24 scanf("%d%d%d",&x,&y,&z); 25 if(x>y)swap(x,y); 26 a[i].bg=x;a[i].ed=y

    82660

    从弧到多线段:深入解析 Java 中的弧度转多线段算法!

    ("点 " + i + ": (" + x + ", " + y + ")");}在这个例子中,我们将弧从 0 到 π/2 的角度(即 90 度的四分之一圆)分成 20 段。...具体分析如下:代码的核心功能该代码根据给定的圆心、半径和起始/终止角度,将一个圆弧均匀分割为若干段,并打印出每个分割点的坐标。变量说明cx 和 cy:分别是圆心的 X 坐标和 Y 坐标。...计算坐标:对于每个 theta 值,使用极坐标公式转换为笛卡尔坐标: 这两个公式利用角度 theta 计算对应的 X 和 Y 坐标。...prevY = y; }这段代码通过循环绘制线段:每次迭代计算下一个点的坐标 (x, y)。...使用 g2d.drawLine 绘制从 prevX, prevY 到 x, y 的直线。更新 prevX 和 prevY 为当前点的坐标,以便在下次迭代中使用。

    18122

    计算机视觉 OpenCV Android | 基本特征检测之 霍夫直线检测 详析

    霍夫直线检测的作用——计算得到输入图像(一般是二值化的边缘检测结果图像)中包含的所有直线的数目与位置 在取得图像边缘的基础上, 对一些特定的几何形状边缘,如直线、圆,通过图像霍夫变换把图像从平面坐标空间变换到霍夫坐标空间...(红色部分是计算过程,递等到右下角的结果,待会儿要用) 在笛卡儿平面坐标系统中的斜率参数与截距参数为(k,b); 若变换到极坐标空间则变成求取另外两个参数(r,θ),r 和 θ之间的关系可以表示为...OpenCV关于霍夫直线变换提供了两个相关API函数, 一个是在霍夫空间求取直线两个极坐标的参数, 需要开发者自己转换到平面坐标空间计算直线; 另外一个则会直接返回平面空间直线/线段的两个点坐标信息...(r,θ)做计算, 使其变换到平面空间(x0 = r * cosθ ; y0 = r * sinθ), 接着通过对x0和y0添加偏移量并进行计算,得到直线的两个点; 然后绘制直线。...minLineLength:表示可以检测的最小线段长度,根据实际需要进行设置。 maxLineGap:表示线段之间的最大间隔像素,假设5表示小于5个像素的两个相邻线段可以连接起来。

    1.3K10

    用Python动画来展示二阶贝赛尔曲线

    因为我们要用到A、B、C三个点,所以要设置一下三个点坐标。A点坐标为x1和y1,B点为x2和y2,C点为x3和y3,再设置一个区间内点的个数dots_num,这个dots_num后面会有解释。...(x2, x3, dots_num) #线段BC的x坐标 y_dots23 = np.linspace(y2, y3, dots_num) #线段BC的y坐标 for i in range...这里的xt和yt是两个list,就是用来存放目标点的x坐标和y坐标,而x_dots12和y_dots12分别是线段AB的x和y坐标,x_dots23和y_dots23分别是线段BC的x和y坐标,这四个是...而从上面的代码中我们可以看到变量dots_num的作用是在线段AB和BC上取这么多的点,然后用这些点推导目标点的坐标,点的数量越多,目标点的坐标也就越多,绘制出来的曲线也就更平滑。...下面再说一下运行动画的函数run的作用,可以看到run一共有5行代码,前4行代码是绘图代码,最后一个是返回参数的代码,前4行中每一行都代表了前面我们说过的点的轨迹, art1是线段AB上的点,用set_data

    1.2K30
    领券