Cheerio、axios、reactjs 从网页上抓取表格并返回空列表

2024-02-27

试图从这个网站上删除这张表:https://www.investing.com/commodities/real-time-futures https://www.investing.com/commodities/real-time-futures

但由于某种原因,当我尝试获取数据时,我总是得到一个空列表。

这就是我正在做的获取数据并解析它的事情:

componentDidMount() {
    axios.get(`https://www.investing.com/commodities/real-time-futures`)
      .then(response => {
        if(response.status === 200)
          {
            const html = response.data;
            const $ = cheerio.load(html);
            let data = [];
            $('#cross_rate_1 tr').each((i, elem) => {
                data.push({
                  Month: $(elem).find('td#left noWrap').text()
                })
            });
            console.log(data);
          }
        }, (error) => console.log('err') );
  }

这是我试图抓取的源代码特定部分的屏幕截图。

任何帮助深表感谢。


正如已经提到的,相关表通过 websocket 连接不断更新。您可以尝试通过 1) 连接到 websocket 或 2) 抓取动态生成的 html 来获取数据。

仅针对数据快照而不是连续时间序列,您可以使用浏览器抓取扩展程序。这样你就不用关心websocket的实现了。

我已经为您确定了价格数据 CSS 选择器,并创建了一个与开源浏览器扩展一起使用的抓取配置https://github.com/get-set-fetch/extension https://github.com/get-set-fetch/extension.

"eLtI4gnapZTLDsIgEEV/hejGLrC+F25N3OrCpulD6FhIWmiY0f6+1Hd9EJsuSEguGRg4h8fSlS0Km/r3ZesjHR0g2zrtKzL2IYg1wOqLZ2hEicrSwxhFVOIyjquqGmpzAiRtsqG0RSxv5 TVg7EDkvC7AD9etmqJlQBz9ONRW8HvgJ06UwD2HpCV/gtpFylFnC39A/s51A3qphMlg94ruBbtNCe5iMr5/EP/S3ICZf4H5myP/0tv3rSIm/oiQjBmlS0OKS6XzdDCJ9iYQT8PxLBzPw/Ei6r WwpZ0dZ2cMF5M="

在扩展中执行以下操作:新项目 > 配置哈希 > 粘贴上面的哈希(不带引号) > 保存、抓取、查看结果 > 导出为 csv。

免责声明:我是扩展作者。

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

Cheerio、axios、reactjs 从网页上抓取表格并返回空列表 的相关文章

  • 如何使用 LinkedIn javascript sdk 检索包括所有字段的职位列表?

    我想要获取 LinkedIn 会员在其个人资料中输入的每个职位的 ID 头衔 摘要 开始日期 结束日期 当前状态和公司名称 我测试了一个查询休息控制台 https apigee com console linkedin我得到了想要的结果 查
  • 检查 DOM 元素是否为复选框

    如何检查给定的 DOM 元素是否为复选框 设想 我有一组文本框和复选框 其中的值是动态分配的 我没有办法识别 DOM 元素是复选框还是文本框 只使用普通的 javascript 你就可以做到 if el type el type check
  • 来自 DataURL 的 Blob?

    Using FileReader s readAsDataURL 我可以将任意数据转换为数据 URL 有没有办法将数据 URL 转换回Blob使用内置浏览器 API 的实例 用户 Matt 一年前提出了以下代码 如何在javascript中
  • 如何获取 RxJSSubject 或 Observable 的当前值?

    我有 Angular 2 服务 import Storage from storage import Injectable from angular2 core import Subject from rxjs Subject Inject
  • 如何从表中选择所有偶数 id?

    我想从 MySQL 数据库的表中选择所有甚至帖子 ID 然后显示它们 我还想获取所有带有奇怪 id 的帖子并将它们显示在其他地方 我想使用 PHP 来完成此操作 因为这是我使用的服务器端语言 或者 我是否必须选择所有帖子 然后使用 Java
  • Chrome SuppressDifferentOriginSubframeJSDialogs 使用 JS 设置覆盖?

    Chrome 开发团队显然刚刚推出了一项名为 SuppressDifferentOriginSubframeJSDialogs 的新 功能 这使得默认情况下不会显示来自与父级不同域上的 iFrame 的警报 确认框 https www ch
  • JQuery 动画文本

    找到简单 简单的动画文本是非常困难的 喜欢这个网站上的 内爆 http codecanyon net item jquery text animation full screen preview 233445 http codecanyon
  • 使用 jQuery 仅从字符串末尾修剪空格

    我知道 jQuery trim 函数 但我需要的是一种仅从字符串末尾修剪空格的方法 而不是开头 So str this is a string 会成为 str this is a string 有什么建议么 Thanks 您可以使用正则表达
  • JQuery DataTable 单元格从行单击

    我正在尝试在 jquery 数据表上实现一个函数 该函数返回单击行的第一列和第四列 我正在遵循这个示例 它允许我操作单击的行http datatables net examples api select single row html ht
  • 专用网络:web3.eth.getAccounts() 始终发送空数组

    我正在运行一个私人以太坊网络 我确实用https aws amazon com blockchain templates 整个设置已经完成 AWS 上的设置看起来正确 现在 我正在尝试创建帐户并检索所有这些帐户 为此 我使用以下方法 Web
  • 在 vue.js 模板中包含外部脚本

    我是 Vue js 和 web pack 的新手 所以我决定使用 vue cli webpack 来构建初始应用程序 我试图包含一个外部脚本 例如组件 不需要的模板中 但是 Vue 警告这是不允许的 我的 index html 文件与最初生
  • Chrome Javascript 调试器暂停时不会重新加载页面

    有时 当我在 Chrome 中调试某些 javascript 并且暂停了 javascript 时 如果我尝试重新加载页面 chrome 只会 继续 调试器 单步执行到下一个断点 似乎没有任何方法可以强制 javascript 完全停止运行
  • Web SQL 数据库 + Javascript 循环

    我正在尝试解决这个问题 但我自己似乎无法解决 我正在使用 Web SQL DB 但无法让循环正常使用它 I use for var i 0 i lt numberofArticles 1 i db transaction function
  • 将 NPM 包客户端与 nuxt 结合使用

    我对 nuxt 和 javascript 非常陌生 我正在尝试弄清楚如何在客户端使用我的应用程序的依赖项 我将它们列在我的 nuxt config js 中并使用 npm 安装 我也有一个文件 plugins导入它们的目录 不确定这是否好
  • 使用 Lodash 的 TypeScript:_.map(["123", " 234 "], _.trim) 返回 boolean[]?

    我有一个字符串数组 它们已像这样分割 var searchValue 600 800 123 180 var groups searchValue split gt 600 800 123 180 因此项目周围可能存在空格 并且我想删除空格
  • 在声明组件选择器时添加指令 - Angular 7

    我正在学习 Angular 并通过单击按钮动态创建组件 我正在尝试使用 Angular Material 的拖放功能来拖动这些创建的组件以对它们进行排序 我的基本组件 html 中有以下代码 div style margin 20px di
  • 使用 React React-router 登录后重定向到主页,并且 usenavigate 不起作用?

    我希望用户在成功登录后重定向到主页 我将用户登录的 api 请求的数据存储在一个名为 currentUser 的变量中 因此如果 currentUser 为 true 它应该重定向到主页 这就是我处理登录请求的方式 export const
  • 如何根据所需表单输入的值更改 CSS 样式

    我想知道如何编写 javascript 来改变所需的表单元素的样式 如果它们有价值的话就改变它们 我想要做的是当所需的文本字段为空时 在它们周围有一个彩色边框 并在它们有值时删除边框样式 我想做的是编写一个 javascript 函数来检查
  • 如何在 JavaScript 中获取浮点数的小数位?

    我想要的是与 Number prototype toPrecision 几乎相反的 这意味着当我有数字时 它有多少位小数 例如 12 3456 getDecimals 4 对于任何想知道如何更快地完成此操作 无需转换为字符串 的人 这里有一
  • 如何在reactJS中将一个页面重定向到另一个页面?

    App js 这是按钮点击事件处理 this handleClick this handleClick bind this handleClick e debugger e preventDefault this context route

随机推荐

  • Passport JS 中的 req.isAuthenticated() 是如何实现的? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 在passportJS文档中 我认为passportisAuthenticated功能没有很好地记录 How is req isAut
  • 在 .NET Core MVC 应用程序中使用 TempData 时出现错误 500

    你好 我正在尝试添加一个对象TempData并重定向到另一个控制器操作 我在使用时收到错误消息 500TempData public IActionResult Attach long Id Story searchedStory this
  • 固定div与滚动条重叠

    我在使用滚动条将固定 div 放置在其他 div 中时遇到问题 它与滚动条重叠 它发生在 safari 和 ie 11 下 当我将 z index 设置为低于带有滚动条的 div 时 固定 div 位于其下方 并且它会丢失交互 您无法单击链
  • Json.net 不再在重复的情况下抛出异常

    我正在尝试将我的 C 应用程序从 Newtonsoft JSON 6 升级到最新版本 9 0 1 我注意到反序列化包含重复元素的对象时行为发生了变化 例如 name test data myElem 1 myElem 2 当反序列化此类对象
  • 如何测试片段视图对用户是否可见?

    我有一个ViewPager 每个页面都是一个Fragment视图 我想测试片段是否位于可见区域 Fragment isVisible 唯一的测试 该片段附加到一个活动 片段设置为可见 该片段已添加到视图中 ViewPager 将创建 3 个
  • Airflow DAG动态结构

    我正在寻找一个可以决定 dag 结构的解决方案当 dag 被触发时因为我不确定我必须运行的操作员数量 请参阅下面我计划创建的执行顺序 Task B 1 Task C 1 Task B 2 Task C 2 Task A Task B 3 g
  • 您将如何制定每日课程表?

    我想做的事情非常简单 但我正在努力找到最好或最优雅的方法来做到这一点 我现在正在构建的 Rails 应用程序将有一个每日课程表 对于每个类别 与此问题相关的字段是 一周中的天 起始时间 结束时间 单个条目可能是这样的 星期几 星期三 开始时
  • 在php中显示html文件的内容[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 大家好 我
  • 如何解决“TypeError:callback.apply不是函数”?

    我正在做一个大学项目 我已经阅读了关于我的问题的每一篇文章 但我还没有找到解决方案 也许你可以帮我 代码如下 viewerObj update id currentIDViewerVar minutesWatched 5 upsert tr
  • 为什么这个程序在 Python 中比 Objective-C 更快?

    我感兴趣了这个小例子 https stackoverflow com questions 5523058 how to optimize this python code from thinkpython exercise 10 10 55
  • 在 Safari 中提交表单时加载 GIF 会停止动画

    看看这个简单的JSFiddle http jsfiddle net VpDUG 4952 忽略所有的javascript代码 这里的问题只是关于动画加载GIF 我想在提交表单之前显示动画加载 GIF 我试过这个 setTimeout fun
  • 如何覆盖 .bash_aliases 中设置的别名

    我喜欢使用 bash 别名来自定义 bash 命令 有没有办法覆盖 bash 别名设置 或者我应该将别名重命名为与原始命令不同的名称 例如 我的 bash aliases 包括 alias ls ls ltr 如果我只想检索文件名 是否需要
  • 如何使用 bash 大括号扩展制作乘法表?到目前为止我有这个: echo $[{1..10}*{1..10}]

    我想更深入地学习 bash 所以我决定制作一个乘法表 我有以下声明的功能 echo 1 10 1 10 但这给了我以下输出 1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 12 14 16 18 20 3 6 9 12 15
  • 为初学者覆盖 Magento 管理控制器

    在 Magento 管理部分 我想覆盖核心 Mage 的 Sales Order ShipmentController php 控制器文件 我尝试使用 from 和 to 标签重写URL 但没有成功 我不知道这样做的实际和正确方法是什么 因
  • 在Delphi中,如何让货币数据类型以不同的形式以不同的货币显示?

    我需要编写一个 Delphi 应用程序 从数据库中的各个表中提取条目 并且不同的条目将采用不同的货币 因此 我需要根据我加载的项目的货币 为每种货币数据类型 英镑 欧元等 显示不同的小数位数和不同的货币字符 有没有一种方法可以几乎全局地更改
  • XSLT 具有相同匹配的多个模板

    我目前坚持应用多个 xsl template 来对元素进行相同的匹配 下面的例子显示了这个问题 有谁知道使用两个 模板匹配 创建预期输出的 XSL 模板吗 由于技术原因 不可能将两个 模板 元素放在一起 Input
  • 提高线程速度[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 每次调用线程后 其速度都会增加 特别是 FirstCircleRepaintThread SecoundCircleRepaintThre
  • 声明函数之前的“new”运算符

    就像探索 javascript 作为我对整个编程的第一次参考 但由于我不是专业人士 无法理解很多东西 因此 如果有人能够解释幕后实际发生的事情 我们将不胜感激 在 body 标签中 我声明了两个函数 一个带有 new 另一个没有 新函数 s
  • 将字符串乘以数字

    我想在 PHP 中显示分数 为此我写道 a 3 b 2 c a b echo c this displays 3 2 but on the other hand I want to multiply c by an integer echo
  • Cheerio、axios、reactjs 从网页上抓取表格并返回空列表

    试图从这个网站上删除这张表 https www investing com commodities real time futures https www investing com commodities real time future