-1

我正在尝试使用通过 IMPORTXML 将网站中的数据导入我的 Google 表格表单。目标页面是https://poporing.life/?search=:steel,但是这两个函数都不断地从图片上的突出显示中获取数据:

例如,当我尝试:

=IMPORTXML("https://poporing.life/?search=:steel","//div[@class='d-flex flex-column']//div[@class='info']//b")  

它不起作用。

关于如何从子页面获取数据的任何想法?

4

1 回答 1

0

OP 正在尝试使用 IMPORTXML 从https://poporing.life中提取数据。但是,该站点有一个公共 API,可用于更轻松地获取相同的数据。

API 已记录在案。输出是 JSON,可以通过 Google 表格轻松访问。Google 记录了访问外部 API的过程。

使用 Google 和 Poporing 文档,我构建了这段代码。

function so54549431() {

  var url = 'https://api.poporing.life/' +
    'get_latest_price/steel';

  var response = UrlFetchApp.fetch(url, {
    headers: {
      "Origin": "https://poporing.life",
    }
  });
    Logger.log("DEBUG: JSON Response: " + response); //DEBUG

  // returns an Object
    var dataAll = JSON.parse(response.getContentText()); //


  var itemname = dataAll.data.item_name;
  Logger.log("DEBUG: Item name: " + itemname);//DEBUG

    var price = dataAll.data.data.price;
  Logger.log("DEBUG: Price: " + price); //DEBUG

  var volume = dataAll.data.data.volume;
  Logger.log("DEBUG: Volume: " + volume);

}

API 返回的 JSON 为get_lastest_price

{
    "success": true,
    "data": {
        "item_name": "steel",
        "data": {
            "price": 2358,
            "volume": 1190273,
            "timestamp": 1549458553,
            "snapping": -1,
            "change1day": 1.550387596899225,
            "change3day": 11.016949152542374,
            "change7day": 31.364902506963787
        }
    }
}
于 2019-02-06T13:50:06.317 回答