Как импортировать XML в Google Sheets с веб-страницы - PullRequest
0 голосов
/ 06 февраля 2019

Я пытаюсь импортировать данные с веб-сайта в форму Google Sheets через IMPORTXML.Целевая страница - https://poporing.life/?search=:steel, однако обе функции продолжают получать данные из выделения на картинке:

Так, например, когда я пытаюсь:

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

не работает.

Есть идеи, как мне получить данные с подстраницы?

1 Ответ

0 голосов
/ 06 февраля 2019

ОП пытается использовать 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);

}

JSON, возвращенный API для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
        }
    }
}
...