【Golang源码学习】chromedp篇

2023-10-30

GitHub:https://github.com/chromedp/chromedp


chromedp.go

RunResponse

【官方注释】func RunResponse(ctx context.Context, actions ...Action) (*network.Response, error)
RunResponseRun 的替代方案,用于触发页面导航,如点击链接或按钮。 运行并阻塞,直到页面加载完毕,返回其 HTML 文档的
HTTP 响应信息。 这对于等待页面准备或捕获 404 状态代码非常有用。
注意:若触发多个导航(navigations),则仅第一个有效;如果未触发任何导航,则阻塞,直到页面关闭(the context is
cancelled)。

个人理解:函数的主要目的是通过触发导航栏捕获页面响应。actions 便是触发操作,包括点击等动作。
内部涉及一个 func responseAction(resp **network.Response, actions ...Action) Action 函数,提供监听捕获功能,定义了 loaderID(用于过滤当前加载器请求) 、reqID(记录当前查看的请求) 、frameID(关联目标的根页面) ,具体分为三步:

  1. 首先,设置处理事件的函数。监听生命周期事件,确保抓取到的响应是由指定加载器 ID 发起的。loaderID为空时捕获响应体
  2. 运行 actions
  3. 阻塞等待加载完成

学习价值:

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

【Golang源码学习】chromedp篇 的相关文章

随机推荐

  • Python 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

    给定排序数组和目标值 如果找到目标 则返回索引 如果没有 请返回索引按顺序插入的索引 您可以假设数组中没有重复项 Example 1 Input 1 3 5 6 5 Output 2 Example 2 Input 1 3 5 6 2 Ou
  • Axure实现弹框周围遮罩效果

    每一次我都惊叹知识的浩瀚和多彩 在IT这个所做即所得的世界里 很容易获得成就感 当然也时时刻刻活在对大神的膜拜之中 就以这次的原型图制作来说 我们遇到了很多的问题 自己实现了很多功能 但是今天晚上大家对自己原型图的演示和分享之中 又让我感叹
  • 2022年全国大学生数学建模竞赛赛题B组解题参考+代码

    题目 获取题目方式 2022年全国大学生数学建模竞赛题目 代码思路获取方式 关注博主竞赛专栏 B 题 无人机遂行编队飞行中的纯方位无源定位 无人机集群在遂行编队飞行时 为避免外界干扰 应尽可能保持电磁静默 少向外发射电磁波信号 为保持编队队
  • VMware 使用U盘装系统

    第一步 首先要有U盘 把这个U盘制作成启动盘教程中使用的是大白菜 大白菜下载地址 第二步 打开你的VMware 新建一个虚拟盘机 第三步 选择稍后安装系统 第四步 选择你要安装的系统 第五步 是你给虚拟机命名和选择安装路径最好不要放在C盘里
  • C++第六章:选择结构的程序设计

    一 选择语句 1 if语句 if语句的作用是计算给定的表达式 根据判断结果选择执行相应的语句 形式1 if 表达式 语句1 例 int a 5 b 1 t if a gt b t a a b b t 形式2 if 表达式 语句1 else
  • Ubuntu-22.04通过RDP协议连接远程桌面

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 RDP是什么 二 配置 1 打开远程桌面功能 2 验证服务 3 防火墙配置 4 测试效果 总结 前言 由于一些特殊需要 我需要通过远程桌面连接到Ubunt
  • 0-1背包问题和完全背包问题

    先总体介绍一下0 1背包和完全背包的区别 主要是01背包和完全背包 背包九讲里面的其他背包问题 都是竞赛级别的 leetcode上面没有 01背包就是 背包存在一个最大容量V 每个物品有两个参数 体积w和价值v 目的是在不超过背包最大容量的
  • 利用 mysql.help_topic 生成序列

    有时我们在生成一些时间轴类似的数据时 要求数据库不管有没有指定天的数据 都要生成该时间节点 可用mysql help topic来解决生此类问题 通过序列和日期函数相结合来满足我们的业务需求 mysql 生成序列 利用 mysql help
  • spark学习2:spark运行基本架构

    各个名词介绍 1 RDD 弹性分布式数据集 2 DAG 有向无环图 反应各RDD之间关系 即把第一个RDD和最后一个RDD 串联起来的关系图 根据DAG 能够找到每个RDD的父RDD 3 executor executor是 驻守在各个工作
  • 三维重建可以考虑光线跟踪的方法

    如题
  • LeetCode 之 剑指 Offer 12. 矩阵中的路径(Java)

    文章目录 LeetCode 之 剑指 Offer 12 矩阵中的路径 Java 一 题目 二 解题思路 三 代码 LeetCode 之 剑指 Offer 12 矩阵中的路径 Java 一 题目 剑指 Offer 12 矩阵中的路径 给定一个
  • Nacos搭建集群

    复制三份Nacos服务端文件 配置相同的数据库 参考前面nacos上线文档 修改每一个的application properties文件内的 server port 然后在每个conf文件夹内新增 cluster conf文件 文件内容为
  • python写ecxel。多个条件对Excel中的数据进行筛选并处理

    在第很多行中 D列不空 C列不空 那么A列B列E列F列不空 D列空 C列不空 那么A列B列E列F列空 import pandas as pd def process data filename 读取Excel文件 df pd read ex
  • Android 反编译三种方式

    首先反编译别人的APK 主要是学习别人的实现逻辑 给自己一个思路 比较商业的APK也不会给你留下这个漏洞 一些核心的业务处理会在后台进行操作 本地的 APK 也会进行混淆加密等 好了废话不多说 步入正题 方法一 在线反编译 很简单方便的一个
  • 思科路由器配置

    1 路由表 show IP route 用户模式 特权模式 enable 全局配置模式 configure terminal config 配置主机名称 enable configure terminal config hostname t
  • RuntimeError: cuDNN error: CUDNN_STATUS_INTERNAL_ERROR

    torch backends cudnn benchmark True 加在开头
  • MySQL基础学习(四)——SQL语句之DML语句

    前言 上一篇博客介绍了一下SQL语句中的DDL和DCL语句 主要涉及通过SQL赋予或者撤回相关的用户权限 创建数据表 创建索引等内容 这一篇博客开始总结DML语句 就是我们开发中常用的一些select insert update delet
  • C#常见编程

    1 编写一段程序 运行时向用户提问 你考了多少分 0 100 接受输入后判断其等级并显示出来 判断依据如下 等级 优 90 100分 良 80 89分 中 60 69分 差 0 59分 static void Main string arg
  • 合并两个有序链表(easy)

    将两个升序链表合并为一个新的 升序 链表并返回 新链表是通过拼接给定的两个链表的所有节点组成的 示例 1 输入 l1 1 2 4 l2 1 3 4 输出 1 1 2 3 4 4 示例 2 输入 l1 l2 输出 示例 3 输入 l1 l2
  • 【Golang源码学习】chromedp篇

    GitHub https github com chromedp chromedp chromedp go RunResponse 官方注释 func RunResponse ctx context Context actions Acti