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 从网页上抓取表格并返回空列表 的相关文章

随机推荐

  • 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