所以我们将介绍如何使用PHP和Dusk库来创建一个抖音视频爬虫项目,以下载抖音视频并保存到本地。Dusk库相关介绍Dusk库是一个用于Laravel框架的浏览器自动化测试和网页爬虫工具。...它强大而灵活,提供了一种简单的方式来模拟用户与网页的交互,如点击按钮、填写表单和提取页面内容。Dusk的选择器和操作方法使得编写自动化测试用例和网页爬虫变得更加容易。...无论是为了确保您的应用程序质量,还是为了进行数据分析和挖掘,Dusk库都可以帮助您轻松实现这些目标爬取思路分析抖音视频页面通常包含视频播放器、视频标题、点赞数、评论数等元素。...要实现抖音视频爬取,我们需要以下思路:1使用Dusk库打开抖音视频页面。2使用Dusk的选择器定位视频元素,通常是通过视频标签或类名来定位。3提取视频的URL、标题、点赞数、评论数等信息。...以下是一个示例,演示如何使用Laravel Dusk的选择器来获取视频标题和点赞数:// 查找视频标题$title = $this->browse(function (Browser $browser)
(options) // 在某个位置点击 .click(position) // 在某个位置点击,且带参数 .click(position, options) // 根据页面坐标点击 .click...(x, y) // 根据页面坐标点击,且带参数 .click(x, y, options) 正确用法 宗旨:先获取 DOM 元素,再对 DOM 元素操作 ?...position 位置参数 每个元素都有九个 position,具体可看下图 ? 坐标 x, y 距离 DOM 元素左上角的坐标,x 是横轴,y 是竖轴 options 可选参数 共有四个 ?...// 即使该元素 “不可操作”,也会触发点击操作 cy.get('button').click({ force: true }) 当使用 force 时,将执行这些操作 继续执行所有默认操作 强制在元素上触发事件...在命令日志中单击 click 时,控制台console 将输出以下鼠标事件 ? 结尾 本文是博主基于对蔡超老师的《Cypress 从入门到精通》阅读理解完后输出的博文,并附上了自己的理解
) // 在某个位置点击 .click(position) // 在某个位置点击,且带参数 .click(position, options) // 根据页面坐标点击 .click(x, y)...// 根据页面坐标点击,且带参数 .click(x, y, options) 正确用法 宗旨:先获取 DOM 元素,再对 DOM 元素操作 错误用法 position 位置参数 每个元素都有九个 position...,具体可看下图 坐标 x, y 距离 DOM 元素左上角的坐标,x 是横轴,y 是竖轴 options 可选参数 共有四个 如何传 options ?...// 即使该元素 “不可操作”,也会触发点击操作 cy.get('button').click({ force: true }) 当使用 force 时,将执行这些操作 继续执行所有默认操作 强制在元素上触发事件...() 会触发的鼠标事件 在命令日志中单击 click 时,控制台console 将输出以下鼠标事件 接下来我们讲 type() 命令 前端 html 代码 后面栗子主要以这个页面为主哦 .type
背景: 公司管理系统需要获取企业微信页面的配置参数如企业名、logo、人数等信息并操作,来隐藏相关敏感信息并自定义简化企业号配置流程 第一版已经实现了扫码登录获取cookie,使用该cookie就能获取合法身份随意请求页面和接口...版 项目是使用laravel开发,首先想到的是集成到框架里,而laravel确实提供了相关组件:Laravel Dusk 虽然这个插件是用来做浏览器测试的,但这里也可以用来爬取页面 ?...属性查询 WebDriverBy::linkText($text) 根据可见元素的文本锚点查询 WebDriverBy::tagName($tagName) 根据元素标签名称查询 WebDriverBy...libidn11 libip4tc0 libkmod2 libargon2-1 libdevmapper1.02.1 libjson-c3 dmsetup \ && apt-get install -y...至此,爬取服务搭建完毕,后面只要是处理一下业务相关的东西,比如拓展app.py的功能,使其支持更多的操作 总结下来就是使用docker部署了一个服务,该服务接收登录cookie,url,配置等参数,使用
组件 应用的界面在顶部显示大的元素,在它下面有许多表单字段。 用户通过从字段中选择工具,然后单击,触摸或拖动画布来绘制图片。...元素中,我们告诉浏览器该标签属于该字段,例如,你可以点击标签来聚焦该字段。...矩形工具在开始拖动的点和拖动到的点之间画一个矩形。...为了让浏览器真正下载图片,我们将创建一个链接元素,指向此 URL 并具有download属性。 点击这些链接后,浏览器将显示一个文件保存对话框。 我们将该链接添加到文档,模拟点击它,然后再将其删除。...直接在该元素上注册键盘事件处理器。 这意味着你必须先单击,触摸或按下 TAB 选择应用,然后才能使用键盘与其交互。
: function(d) {return xScale(d[0])+10;},//将标签与散点位置一一对应 // y : function(d) {return yScale...在SVG中,支持剪切路径(clipping:path),就是PS中的蒙版。剪切路径是一个SVG元素,可以包含可见的元素,并与这个可见元素一起构成可以应用到其他元素的剪切路径或蒙版。...在把蒙版应用到某个元素时,只有落在该蒙版内的像素才会显示。 与g元素类似,clipPath也不可见,但它可以包含可见的元素。..."rect") //在clipPath中,创建并添加新的rect元素 .attr("x",padding) //设置rect的大小和位置 .attr("y",...,可以分别给每个散点添加一个对该clipPath的引用。
Ctrl+Insert 将新的关键帧追加到动画结尾处最后一个关键帧之后。 Shift+Insert 更新或设置关键帧。如果当前时间上存在一个关键帧,则该帧将被更新。...在指针的当前捕捉容差范围内的折点处闪烁显示正方形。 Ctrl + Shift + 单击 选择多个折点。 在选定折点之间以统一方式拖动多个线段。 A + 单击 添加折点。...在单击线段的位置处创建折点。 D + 单击 删除折点。 删除单击的折点。 H + 拖动 编辑高程。 垂直移动启用 z 值的折点,并保留其 x,y 坐标。...在“随沿要素”模式下,更改注记要素与边界要素之间的距离。 创建点要素 用于点构造工具的键盘快捷键 键盘快捷键 操作 注释 F6 指定绝对 X,Y,Z 。 打开绝对 X,Y,Z对话框。...F6 指定绝对 X,Y,Z 。 打开绝对 X,Y,Z对话框。 Shift + 拖动 将形状创建为正方形。 将形状约束为正方形。创建矩形的第一个点,按键盘快捷键,然后拖动。
导航栏之所以不直接显示而是放进下拉菜单,也是为了在移动端等小尺寸设备中显示得优雅一点,因此这个单击判定其实是优势。...先说决定如何被聚焦,这里分为负值(一般是 -1)与非负值,若为负值则该元素 不可以被键盘 Tab 聚焦、但可以被 JavaScript 或者鼠标单击聚焦,一般希望被 JavaScript 接管的设为此值...再说决定聚焦顺序,非负值也分为两部分,0 与正值,若为 0 则该元素可以被键盘 Tab 聚焦或 JavaScript、点击聚焦且按照默认顺序聚焦;若为正值则按照数值从小到大的顺序聚焦且 优先于所有 tabindex...其次,当一个元素被聚焦时,点击一般的空白处无法使它失焦。这个问题很迷,在 iOS Safari 上 100% 复现而在 iOS Chrome 上完全无法复现。...上面表述中的「一般」表示这其实是有例外的,比如点击其他默认可聚焦的元素(如 、button 等等)就会使新聚焦的元素顶替原聚焦的元素让先前的元素失焦。
查看CSS 查看元素对应的样式 1、 打开调试工具,点击调试工具左上角的检查元素按钮或者快捷键(Ctrl/Cmd + Shift + C) 2、在页面选中需要查看的元素,被检查的元素在DOM树中以蓝色背景突出显示...5、当鼠标悬浮在某一行属性上时,会出现一个圆形箭头按钮,点击可以跳转到styles 选项卡所对应的样式处。 查看元素伪状态 1、在 styles 选项卡中点击 :hov 。...2、如果想在特定位置添加新样式规则,可以鼠标悬浮在插入规则的上一个样式规则处,此时会在右下角出现三个点更多操作的符号,x悬浮上去就会出现加号2➕,点击加号2就会在此条样式的后面新增一条样式规则。...切换样式声明 1、点击样式声明前的复选框就可以切换样式声明 更改元素尺寸 1、在 styles 选项卡的框模型图中,将鼠标悬浮在需要编辑的区域,双击,填入需要修改的数值,回车。...要将所选颜色更改为页面上的其他颜色: 1、将鼠标悬停在视口中的目标颜色上。 2、点击确认。
顶部还有足够的空间显示整个异常页面,不需要额外的单击。我们也只在默认情况下显示应用程序帧,因为这些可能是您感兴趣的帧。 ?...这是一个很好的方法,可以很容易地看到 Laravel 为这个特定的路由接收了什么信息。 在路由参数之后,我们还将向您显示在此请求中使用的中间件列表。 接下来是 “视图” 部分。...刷新页面后,应用程序将正常工作 (除非它含有其他异常) 您可以通过让异常实现 Facade\IgnitionContracts\ProvidesSolution 来创建可运行的解决方案,这与不可运行的解决方案非常相似...当用户点击Fix this for me 修复按钮时,run函数将执行。 您可以将参数从异常发生的请求传递到将运行解决方案的请求。让 getRunParameters返回一个数组。...该包是一个基于 spatie/laravel-web-tinker 的包装器,它允许您在浏览器中使用 Artisan tinker。
eventTarget.addEventListener()方法将指定的监听器注册到 eventTarget(目标对象)上,当该对象触发指定的事件时,就会执行事件处理函数。 ?...eventTarget.attachEvent()方法将指定的监听器注册到 eventTarget(目标对象) 上,当该对象触发指定的事件时,指定的回调函数就会被执行。 ?...DOM事件流 html中的标签都是相互嵌套的,我们可以将元素想象成一个盒子装一个盒子,document是最外面的大盒子。 当你单击一个div时,同时你也单击了div的父元素,甚至整个页面。...坐标是' + x, 'y坐标是' + y); //3 ....坐标是' + x, 'y坐标是' + y); //3 .
对于锚点,您有两个选择:“ Pan Behind”工具(键盘快捷键Y)或锚点属性。 Pan Behind 工具(快捷键** Y)** 确保选择了光标层,然后将十字准线拖到元素的左上角。就是这样。 ?...在 Anchor Point(“ 锚点”)属性中,将这两个值更改为零(这些表示相对于图层的x和y坐标)。 缩放 你也有两个选择。您可以使用变换句柄保持位移,单击并将边界框的右下角拖动到正确的比例。...在该动画框架上,单击Position(位置)左侧的菱形。这将创建一个关键位置的新关键帧。向前走一秒钟左右,并将光标拖到合成物外。 当你预览时,它应该看起来像这样: ?...将其拖出屏幕,并在其他元素离开屏幕后在时间轴中的某处创建位置关键帧。向前移动半秒钟,并将logo移动到屏幕中心(cmd +选项+ F)。 预览您的动画以查看logo转换。...在logo上选择您的两个位置关键帧,然后按按钮,如图所示(请参见下面的蓝色突出显示的按钮): ? 对于位置,我们需要拆分X和Y值。
执行动作actions.perform()'''# 鼠标点击actions.tap(ele_input) # 单击元素actions.double_tap...(ele_input) # 双击元素actions.long_press(ele_input) # 长按元素# 鼠标滚动x, y...ele_input, x, y) # 滚动,以元素为起点向下向右(x, y)距离# 鼠标移动x, y = 0, 1000actions.move(x, y)...速度滑动xoffset, yoffset, speed = 30, 50, 20actions.flick_element(ele_input, xoffset, yoffset, speed) # 在元素处滑动...# 点住,在坐标(x, y)处# 容器相关actions.perform() # 按顺序开始执行动作time.sleep(5)driver.quit
) TouchAction的原理是将一系列的动作放在一个链条中,然后将该链条传递给服务器,服务器接收到该链条后,解析各个动作,逐个执行。...(driver).long_press(WebElement el,x=X,y=Y,int=1000) # tap点击操作 # 点击元素 TouchAction(driver).tap(WebElement...el) # 点击坐标(X,Y) TouchAction(driver).tap(x=X,y=Y) # 点击在元素el的左上角的x坐标偏移X单位,y坐标偏移Y单位 TouchAction(driver)...el) # 以(X,Y)点为目标,从另一个点移动到该目标上 TouchAction(driver).move_to(x=X,y=Y) # 以元素el的左上角为基准,x轴向右移动X单位,y轴向下移动Y单位...,以该点为目标,从另一个点移动到该点上 TouchAction(driver).move_to(WebElement el,x=X,y=Y) # wait暂停操作,单位为毫秒 # 等待ms毫秒 TouchAction
PhpStorm 常用快捷键和配置 1:配置 设置代码及字体风格:File->Settings->Editor->Colors&Fonts->Font 安装插件(如:tp,laravel,yii。。。)...soft wrap in editor ” 设置行号:File->Settings->Editor->General-》Appearance->勾选 “ show line numbers” 最后记得点击应用...,其他需要配置可以自行百度。...剪 切,删除行 CTRL+D 复制行 Ctrl + Y 删除行插入符号 CTRL+SHIFT+V 可以复制多个文本 其他快捷方式 CTRL+Z 倒退(代码后悔) CTRL+SHIFT...Ctrl+Shift+W 减少当前选择到以前的状态 CTRL+B 转到声明,快速打开光标处的类或方法说明注释(CTRL + 鼠标单击 也可以) CTRL+O 魔术方法 CTRL+/ 注释
DOM事件流 html中的标签都是相互嵌套的,我们可以将元素想象成一个盒子装一个盒子,document是最外面的大盒子。 当你单击一个div时,同时你也单击了div的父元素,甚至整个页面。...-----------'); // 2. page 鼠标在页面文档的x和y坐标 console.log(e.pageX); console.log(e.pageY...); console.log('---------------------'); // 3. screen 鼠标在电脑屏幕的x和y坐标 console.log...y坐标做为图片的top和left 值就可以移动图片 var x = e.pageX; var y = e.pageY; console.log('x坐标是...' + x, 'y坐标是' + y); //3 .
driver.currentActivity(); 20、单击元素 单击元素。...); // 点击坐标(x,y)点按下,duration毫秒后松开,如此重复fingers次 driver.tap(int fingers, int x, int y, int duration); 27...、触控操作(TouchAction) TouchAction的原理是将一系列的动作放在一个链条中,然后将该链条传递给服务器,服务器接收到该链条后,解析各个动作,逐个执行。...(X,Y) action.press(PointOption.point(20, 30)); // longPress长按操作 // 长按点坐标(X,Y) action.longPress...)); // moveTo移动操作 // 以(X,Y)点为目标,从另一个点移动到该目标上 action.moveTo(PointOption.point(20, 30));
左上角的x和y坐标,getRawX和getRawY是相对于手机屏幕左上角的x和y坐标。...,view动画和属性动画,新位置均无法触发点击事件,同时,老位置仍然可以触发单击事件。...从3.0开始,属性动画的单击事件触发位置为移动后的位置,view动画仍然在原位置。...(5)某个view一旦开始处理事件,如果它不消耗ACTION_DOWN事件,那么同一事件序列的其他事件都不会再交给它来处理,并且事件将重新交给它的父容器去处理(调用父容器的onTouchEvent方法)...该方法需要重写父容器的onInterceptTouchEvent方法,在内部做相应的拦截即可,其他均不需要做修改。
名称 操作符 含义 赋值 x = y x = y 加法赋值 x += y x = x + y 减法赋值 x -= y x = x - y 乘法赋值 x *= y x = x * y 除法赋值 x /=...y x = x / y 求余赋值 x %= y x = x % y 求幂赋值 x **= y x = x ** y 左移位赋值 x y x = x y 右移位赋值 x >>= y x =...x >> y 无符号右移位赋值 x >>>= y x = x >>> y 按位与赋值 x &= y x = x & y 按位异或赋值 x ^= y x = x ^ y 示例: 赋值运算符的符号为=...如果没有提供初始值,则将使用数组中的第一个元素。 在没有初始值的空数组上调用 reduce 将报错。....定位符 定位符可以将一个正则表达式固定在一行的开始或者结束,也可以创建只在单词内或者只在单词的开始或者结尾处出现的正则表达式。
,包括由于overflow溢出而在屏幕上不可见的内容,当元素其中内容没有超过其高度或者宽度的时候,该属性是取不到的。...返回一个DomRect对象,返回的结果是包含完整元素的最小矩形,并且拥有left, top, right, bottom, x, y, width, 和 height这几个以像素为单位的只读属性用于描述整个边框...3.offsetX和offsetY 这一对属性是指当事件发生时,鼠标点击位置相对于该事件源的位置,即点击该div,以该div左上角为原点来计算鼠标点击位置的坐标,如下所示: 可以看到,点击该div的靠近左上角处...在mousemove中使用offsetXoffsetY有可能会导致的问题 offsetX 表示鼠标指针位置相对于触发事件的对象的 x 坐标。...length(可选):在返回的子字符串中应包括的字符个数。 如果 length 为 0 或负数,将返回一个空字符串。
领取专属 10元无门槛券
手把手带您无忧上云