如何使用 Puppeteer 读取 span 元素的值

2024-03-31

我正在尝试进行一些网页抓取,读取 html 页面内的一些行。我需要寻找在某些页面中重复出现的文本<span>元素。在下面的示例中,我想以 ['文本编号 1','文本编号 2','文本编号 3'] 的字符串数组结尾

<html>
    ...
    <span>Text number 1</span>
    ...  
    <span>Text number 2</span>
    ...
    <span>Text number 3</span>
    ...
</html>

我有以下代码

sElements = ' ... span'; // I declare the selector.
cs = await page.$$(sElements); // I get an array of ElementHandle

选择器的工作方式与 Google Chrome 开发者工具中的一样,它准确地捕获了我正在寻找的 3 个元素。 cs 变量也填充了三个元素的数组。但后来我正在尝试

for(c in cs)
    console.log(c.innerText);

但未定义被记录。我尝试过 .text .value .innerText .innerHTML .textContent ...我不知道我错过了什么,因为我认为这非常简单

我也尝试过同样的未定义结果。

cs = await page.$$eval(sElements, e => e.innerHTML);

这是一个获取最后一个跨度元素的内部文本的示例。

  let spanElement;

  spanElement = await this.page.$$('span');
  spanElement = spanElement.pop();
  spanElement = await spanElement.getProperty('innerText');
  spanElement = await spanElement.jsonValue();

如果您仍然无法获取任何文本,请确保选择器正确并且 span 元素定义了 insideText(而不是outerText)。您可以在 Chrome 控制台中运行 $(selector) 来检查。

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

如何使用 Puppeteer 读取 span 元素的值 的相关文章

  • EJS - 包含返回找不到包含文件“header.ejs”

    我尝试像这样用 ejs 渲染 html const ejs require ejs fs require fs str fs readFileSync dirname mail templates test ejs utf8 console
  • Node.js:将 repl 挂接到远程节点服务器

    假设我有一个节点服务器在 mysite com 上运行 有没有办法设置该服务器以便我可以使用节点的repl api http nodejs org docs latest api repl html to securely从我的本地计算机连
  • npm installexpress-generator 不安装express

    我正在遵循 MEAN 堆栈教程 该教程要求我安装 Express 我运行这个 npm install g express generator 这是我的结果 username username Inspiron 3521 npm instal
  • 在 Kubernetes 中连接前端和后端

    我的前端设置为 this http post
  • socket.io 自动断开套接字

    当我在电子中运行 socket io 时 我不断在开发者控制台中收到此错误 engine io client socket probe transport websocket failed because of error transpor
  • 我如何制作 spring websocket + node.js 客户端

    我怎样才能在node js中创建一个websocket stomp客户端 WebSocketStompClient 就像我在java中用这行代码做的那样 WebSocketStompClient stompClient new WebSoc
  • 寻找在 gulp 中复制文件并根据父目录重命名的方法

    对于每个模块 我都有一些需要复制到构建目录的文件 并且正在寻找一种方法来最大限度地减少重复代码 gulp src client src modules signup index js pipe gulp dest build public
  • 如何为 Inquirer.js 编写单元测试?

    我想知道如何为 npm 包编写单元测试询问者 js https github com SBoudrias Inquirer js 这是一个让CLI打包更容易的工具 我读过了这个帖子 https glebbahmutov com blog u
  • 为什么 Node.js 0.12.0 版本中的 V8 需要 SSE2 CPU 指令?

    尝试将 Node js 从 0 10 x 升级到 0 12 0 首先注意到的是 我收到一条错误消息 指出我的 CPU 不支持 SSE2 指令 实际上并不支持 尝试从源代码编译 Node js 但由于同样的原因失败了 在deps v8 src
  • 无法在 Sequelize 迁移中执行原始查询

    我正在尝试使用 Sequelize 迁移更新我的数据库 因此我尝试编写这样的 Sequelize 迁移 use strict module exports up queryInterface Sequelize migration gt q
  • 从子文件夹运行的 Node.js 服务器

    所以我参加 Node js 聚会已经很晚了 主要是没人邀请我 Thanks 也就是说 我开始解决这个问题 我有 ASP 经典背景 所以有一些东西我还没有理解 如果有人能指出我正确的方向 那就太好了 提前致谢 因此 我正在以标准方式设置服务器
  • Express 不断将 request.body 获取为未定义的 JSON 对象

    我正在发出一个 Ajax 请求 如下所示 ajax url gen type POST data JSON stringify one 1 two 2 success function data console log this 我的快递部
  • 如何在Electron App中调用C# dll方法?

    我有一个电子应用程序 可以从读卡器读取信用卡详细信息 他们提供了一个 c dll 来与应用程序交互 我不知道如何从电子应用程序读取 dll 方法 首先使用以下命令检查 dll 中公开的函数依赖步行者 http www dependencyw
  • Node.js ES6如何从模块导出类? [复制]

    这个问题在这里已经有答案了 我正在尝试从 Node js 6 2 0 中的 CommonJS 模块导出 ES6 类 class MyClass class contents here exports MyClass 然后将其导入到另一个模块
  • 如何从客户端 JavaScript 调用特定的 Node.js 方法

    在我的应用程序中 我在 node js 文件中创建了许多方法 我如何从客户端 JavaScript 调用特定方法 下面是我的node js 文件 exports method1 function exports method2 functi
  • 猫鼬递归填充

    我已经搜索了一段时间 但没有找到任何好的答案 我有n deep我存储在数据库中并且想要填充的树所有的父母所以最后我得到了完整的树 node parent parent parent 到目前为止 我已达到 2 级 正如我提到的 我需要达到 2
  • 如何在 guildMemberAdd 中使用awaitReactions

    当用户连接到我的服务器时 我向他们发送消息 并且我想通过单击反应来继续授权 我怎样才能创建这个 我正在使用以下代码 robot on guildMemberAdd gMembAdd gt gMembAdd send Hi gMembAdd
  • 从mongoDB和Nodejs获取数据:toArray不是函数错误[重复]

    这个问题在这里已经有答案了 我有以下代码 var user User find limit 1 skip 10 toArray 但我收到错误消息toArray不是一个函数 但如果我执行以下操作 我将获得所有记录 User find func
  • Node.JS Web 服务器中的安全性

    所以 我正在学习 Node JS 到目前为止我很喜欢它 我已经有几个项目在工作了 我想我可以在其中使用nodejs 不过 我担心安全问题 如果我使用 Node JS http 模块编写自定义 Web 服务器 我是否可能非常容易受到攻击 Ap
  • everyauth 承诺是什么?

    我不明白 everyauth 承诺是什么 我发现我需要返回一个 Promise 对象或用户 但是 everyauth Promise 是什么 当您有一个执行身份验证但异步执行的函数时 它非常有用 您不能直接从函数返回用户信息 因为您必须等待

随机推荐

  • 从 MYSQL DB 中搜索电话号码

    我有一张桌子phone柱子 其中的电话看起来像 1 123 456 3780 如果用户在搜索字段 35 中输入 我应该向他显示所有拥有手机的用户 3 534 000 1010 1 350 000 9090 1 003 534 2343 1
  • Signal-R 如何适应 IIS 激活模型?

    我正在学习 Signal R 这是我一直以来的想法 Signalr 如何融入 IIS ASP NET 生命周期 集线器的寿命有多长 我看到它们有重新连接语义 IIS 是否会阻止具有持久连接的 AppDomain 关闭 据我了解 IIS 旨在
  • 搜索二维数组内的子数组(图像识别)[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 本质上 我有一个 numpy 图像数组 我试图查找它是否包含特定 RGB 像素值的 2x2 块 因此 例如 如果我的 简化的 图像数组类似
  • 多核机器上的 Hadoop 和 Map-Reduce

    我读过很多关于在机器集群上运行的 Hadoop 和 Map Reduce 的内容 有人知道 Apache 发行版是否可以在具有多个内核的 SMP 上运行吗 特别是 多个Map Reduce进程是否可以在同一台机器上运行 调度程序将负责将它们
  • .NET OutputCache 指令不起作用

    我一直遇到奇怪的缓存问题 并将一个非常简单的 NET 页面与输出缓存指令放在一起 但是 该页面不会缓存 内容会在每次刷新时更新 我在本地计算机 Windows 7 上安装了一个简单 最小的 CMS 站点 Ektron v 9 0 SP2 在
  • 有没有办法将数据从 .csv 导入到活动 Excel 工作表?

    我有一个始终以相同名称命名的 csv 文件 名为 SO2PO csv 我将其中的数据导入到名为 PO 数据 的 Excel 工作表中 该工作表位于名为 未结订单 的工作簿中 我需要找到一种方法将 SO2PO csv 中的所有数据导入到 Op
  • 为什么我的样式包在 ASP.NET MVC 4 中无法正确呈现?

    所以我是 ASP NET MVC 4 的新手 嗯 我用过一点 3 无论如何 在我的 BundleConfig cs 文件中 我尝试加载 Twitter Bootstrap css 文件和附加的site css file 但仅呈现 site
  • 正确预防 PHP 中的邮件注入

    你能告诉我如何预防吗电子邮件注入 http en wikipedia org wiki Email injection in PHP mail 而不丢失原始消息数据 例如 如果我需要允许用户使用 r n To CC等等 所以我不想将它们完全
  • VS 2015 中未解决 Microsoft.NETCORE.app 依赖关系

    我在使用 Visual Studio 2015 时遇到问题 当我创建新的 CORE 1 0 项目时 引用显示错误 指出 NETCoreApp 无法解析 当我打开project json 文件时 Microsoft NETCore App 带
  • 在页面内容上方浮动一个 div [重复]

    这个问题在这里已经有答案了 我实现了一个动态显示搜索选项的弹出框 我希望该框 浮动 在所有网站内容之上 目前 当显示该框时 它会取代其下方的所有内容 并且看起来很糟糕 我相信我已经尝试将框的 div 的 z index 设置为高于其余页面内
  • 恢复 SQL Server 2005 数据库后将所有用户链接到登录

    请注意 此问题询问有关链接所有用户的问题 这与询问有关链接单个用户的可能重复问题不同 我希望在两台服务器之间移动数据库 我已经从第一台服务器备份了数据库 并在第二台服务器上进行了数据库恢复 到目前为止一切顺利 然而 我们的应用程序使用了数据
  • 在后台使用 prawn 和 resque 生成 pdf

    我正在尝试通过 Resque 后台作业在后台创建 PDF 文档 我用于创建 PDF 的代码位于 Rails 辅助方法中 我想在 Resque 工作线程中使用该方法 例如 class DocumentCreator queue documen
  • php循环列表中的随机产品[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我有来自女巫的产品列表 我需要随机显
  • Android 底页 - 滚动问题

    我需要底部纸张停在两个位置 我有以下底页代码
  • 关于 .git/HEAD 的存储库:错误:清单丢失或不可读 - 请运行 init

    我正在使用repo 在ubuntu中 下载android 4 4源代码 上次我通过按组合键 Ctrl Z 终止了 repo 进程 这次当我使用命令 repo init 和 reposync 启动它时 出现以下错误 错误 在sync Errn
  • AtomicReferenceArray 的工作原理

    我想知道 AtomicReferenceArray 是否可以用作 ConcurrentLinkedQueue 的替代品 如果可以使用有界结构 我目前有类似的东西 ConcurrentLinkedQueue
  • UITableView tableHeaderView 中的 UIButton 不响应触摸

    好吧 我觉得自己像个白痴 我无法让这个工作正常进行 而且 SO 上的其他答案都没有让我得到任何帮助 我有一个非常简单的UIView我已经在 xib 中定义并加载为tableHeaderView of my UITableViewContro
  • 从 oracle 表中恢复已删除的行

    是否可以从 oracle 表中恢复已删除的行 我的数据存储在表 MANUAL TRANSACTIONS 中 架构名称是 CCO 我不小心删除了表中的 50 万行 并且也进行了提交 现在我想恢复它们 我正在使用 Oracle 11g R2 谢
  • 为什么 Clippy 建议传递 Arc 作为参考?

    我正在检查我的代码中的 Clippy 发现 发现迂腐的规则needless pass by value https rust lang github io rust clippy master index html needless pas
  • 如何使用 Puppeteer 读取 span 元素的值

    我正在尝试进行一些网页抓取 读取 html 页面内的一些行 我需要寻找在某些页面中重复出现的文本 span 元素 在下面的示例中 我想以 文本编号 1 文本编号 2 文本编号 3 的字符串数组结尾 span Text number 1 sp