【问题标题】:How to get HTML table values from external website?如何从外部网站获取 HTML 表格值?
【发布时间】:2019-02-23 21:00:19
【问题描述】:

我想访问一些 HTML 表格数据,以便离线保存和使用它们。目前我使用 JavaScript 并且它可以工作,当我下载网页并将 JavaScript 放入该文件时。但我想直接从网页中获取元素而不事先下载它,或者 JavaScript 自动下载它并从下载的文件中获取元素。

这可能吗?我找不到答案,因为每个人都在询问他们自己的网页,但我不拥有我想从中获取表格数据的网站。

到目前为止我的代码:

function showTableData() {
    var tableData = document.getElementsByClassName('homeonly');

    for (i = 1; i < tableData[0].rows.length; i++) {

        var objCells = tableData[0].rows.item(i).cells;

        for (var j = 0; j < objCells.length; j++) {
            if (objCells.item(j).innerHTML == "NAME") {
                info.innerHTML = info.innerHTML + ' ' + objCells.item(3).innerHTML;
            }
        }
    }
}

info 是 HTML 中要显示的段落元素的 id。

【问题讨论】:

  • 请显示您尝试过的代码。
  • 您尝试完成的工作称为抓取,您可以编写 javascript 来执行此操作,但工具(如其中一个 scraperapi.com/blog/the-10-best-web-scraping-tools)可能会更容易。
  • 添加了我到目前为止的代码

标签: javascript html download cross-domain


【解决方案1】:

首先您必须确定它是否被远程端(您要下载的站点)允许并且合法。

只需发送带有 URL 的 GET HTTP 请求,您就会得到 html 作为响应。您可以解析html并找到表格和其他元素。

如果远程服务器不允许跨域,您必须使用 HTTP 客户端创建一些后端,该客户端将提供 html。

【讨论】:

    【解决方案2】:

    您的第一个选择是下载网页的静态版本,并将您的 javascript 代码注入其中。

    或者 - 你的第二个选择 - 我觉得更容易,使用 Chrome 的 JavaScript 控制台来执行你想要的命令。

    如果你发现这个方法有限制,你可以找到一个 web 抓取 node.js 库,并在其中编写你的抓取工具。

    【讨论】:

      【解决方案3】:

      您可以使用网络抓取。有多种语言的各种网络抓取工具。我也是 python 开发人员,我用 python selenium 和 scrapy 创建了许多脚本。所以我认为这是满足您要求的最佳解决方案。

      【讨论】:

        【解决方案4】:

        您打算做的很可能是xss 攻击的一种形式,大多数网站都为此做好了准备。在不下载实际网页的情况下,您可以做的最好的事情是打开chrome 上的“检查元素”选项卡,转到console。然后在那里粘贴并运行你的函数,因为你可以访问那里的 DOM。

        【讨论】:

          猜你喜欢
          • 2019-10-21
          • 1970-01-01
          • 1970-01-01
          • 2018-05-11
          • 1970-01-01
          • 2020-06-29
          • 2013-04-21
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多