【问题标题】:XML query for data in Germany stock exchange page德国证券交易所页面中数据的 XML 查询
【发布时间】:2020-06-15 21:11:02
【问题描述】:

我正在尝试从 this page 检索信息,还有 532 个这样的页面。信息是符号 - 在这种情况下是 BBUS - 为了在谷歌表中批量执行此操作,我尝试了 IMPORTXML。作为一个新手,在阅读了command 上的文档并在其他地方搜索了查询示例之后,我能想到的最好的方法是:

  • 在网页中,选择我要检索的文字
  • 使用 chrome 中的“inspect”命令,可视化读取代码的相应部分

/html/body/app-root/app-wrapper/div/div[2]/app-etp/div[1]/div/app-widget-datasheet-header/div/div/div/div/div[2]/div/span[1]

显然,与我在能够浏览的查询示例中找到的简单结构相去甚远

  • 单击 [...] 选择 Copy>Xpath 或 Copy>full Xpath"
  • 将其粘贴到我的电子表格中,=IMPORTXML(A2; "/html/body/app-root/app-wrapper/div/div[2]/app-etp/div[1]/div/app-widget-datasheet-header/div/div/div/div/div[2]/div/span[1]")A2 包含网页 URL 的单元格。

我得到的是#N/A。我已经准备好接受这是 html 代码编写方式的问题,但这是我第一次遇到堆栈溢出问题,我也准备好获得一些巨大的帮助!

【问题讨论】:

    标签: html xml web-scraping google-sheets google-sheets-importxml


    【解决方案1】:

    使用 Chrome 检查工具,然后使用 xPath 的问题是 Chrome 将显示解析的 HTML,这可能与 IMPORTXML 可以看到的不同。

    IMPORTXML 只能看到源代码,但 Chrome 显示的 HTML 可以通过 JavaScript 修改,另一方面,如果 HTML 格式不正确,Chrome 可能会添加一些缺失的标签。

    要知道 IMPORTXML 是否可以看到您要导入的内容,您可以在 Chrome 中禁用 JavaScript。更多详情见How to know if Google Sheets IMPORTDATA, IMPORTFEED, IMPORTHTML or IMPORTXML functions are able to get data from a resource hosted on a website?

    【讨论】:

      【解决方案2】:

      通常,要检索信息,您必须解码代码源中包含的json,即脚本id =“boerse-frankfurt-state”,但这里该脚本仅包含格式和数据通过异步方法加载( ajax)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多