Я пытаюсь импортировать данные ставок со следующего веб-сайта: https://www.pinnacle.com/en/odds/match/football/usa/nfl
Используя функцию Inspect в Chrome, я попытался определить точную ссылку на требуемые данные. Лучшее, что я могу сделать, это следующее:
=IMPORTXML(A5,"//td[@class='game-name name']/span")
Это дает мне несколько имен переменных, но нет данных.
В идеале я хотел бы импортировать данные таблицы со всеми соответствующими столбцами.
Кто-нибудь может помочь?
Спасибо за ответ. Когда я отключаю Javascript, таблица не появляется, поэтому я не получаю никаких данных. Есть ли другой способ импортировать таблицу? Я видел, как в некоторых ответах используются сценарии, но, похоже, у меня нет никаких успехов с ними.





Чтобы получить значения, которые используются для построения таблицы данных, внимательно осмотрите вкладку сети в инструментах разработчика (Chrome), и вы найдете вызов 889? Callback = angular.callbacks._0, который содержит значения в виде объекта JSON, обернутого функцией angular.
angular.callbacks._0({"ResponseTime":"2018-09-09T20:19:26Z","OddsType":"american","Leagues":[{"LeagueId":889,"SportId":15,"IsLive":false,"HasLiveLines":true,"Events":[{"EventId":841876318,"LeagueId":889,"SaveTime":"2018-09-10T03:15:47Z","DateAndTime":"2018-09-10T16:10:00Z","Cutoff":"2018-09-10T23:10:00Z","HoursAndMinutes":"16.10","PeriodNumber":0,"IsLive":false,"IsOffline":false,"LiveStatus":2,"Totals":{"OverPrice":104.0,"UnderPrice":-115.0,"Min":45.0},"IsHandicapEmpty":false,"IsMoneyLineEmpty":false,"IsTeamTotalsEmpty":false,"Participants":[{"Id":479,"Name":"New York Jets","Type":"Team1","Handicap":{"Price":-113.0,"Min":7.0},"MoneyLine":256.0,"TeamTotals":{"OverPrice":-110.0,"UnderPrice":-106.0,"Min":17.5},"IsDraw":false},{"Id":480,"Name":"Detroit Lions","Type":"T...
Есть несколько вариантов, чтобы добавить это в электронную таблицу Google. Самый простой, но не обязательно самый простой вариант - использовать редактор сценариев для получения строки ответа, извлечения строки JSON, а затем извлечения данных из объекта JSON. Вот отрывок, с которого можно начать:
function getJSON(aUrl,sheetname) {
var aUrl = "https://www.pinnacle.com/webapi/1.17/api/v1/GuestLines/Deadball/15/889?callback=angular.callbacks._0";
var response = UrlFetchApp.fetch(aUrl);
var jsonString = response.getContentText().replace("angular.callbacks._0(", "").replace(");", "");
Logger.log(jsonString);
var dataAll = JSON.parse(jsonString); //
var data = dataAll.Leagues["0"].Events;
/*for (i in data){
var overPrice = data[i].Totals.OverPrice;
var underPrice = data[i].Totals.UnderPrice;
var minPrice = data[i].Totals.Min;
//
}*/
//funcs() to insert data into spreadsheet
}
Во-первых, вам нужно определить, что вы хотите получить от объекта; Я подозреваю, что данные, которые вы ищете, можно найти в dataAll.Leagues["0"].Events.
Следующим шагом будет вставка данных из ячеек таблицы объекта int. Вот образец, как это сделать.
Таблицы значений загружаются отдельно с помощью Javascript после, загруженного базовой страницей.
IMPORTXMLне является браузером, он не выполняет никаких скриптов. Отключите Javascript, чтобы увидеть, что видитIMPORTXML. Посмотрите, предлагают ли они API вместо того, чтобы пытаться очистить свой сайт.