2016-07-30 7 views
2

Я пытаюсь извлекать данные из следующих веб-страницы образца с помощью Google Apps Script:Web выскабливания с помощью Google Apps Script

URL = http://www.premierleague.com/players/2064/Wayne-Rooney/stats?se=54

использования, UrlFetchApp.Fetch (URL)

Проблема в том, что для этого я использую UrlFetchApp.Fetch (url), я не получаю информацию о странице, определенную параметром «se» в URL-адресе. Вместо этого я получаю информацию по следующему URL-адресу, потому что похоже, что страница «se = 54» загружена асинхронно: http://www.premierleague.com/players/2064/Wayne-Rooney/stats

Есть ли способ передать параметр «se» каким-либо другим способом? Я смотрел на функцию, и она позволяет специфицировать «параметры», как они упоминаются, но документация по этой теме очень ограничена.

Любая помощь была бы очень признательна. Большое спасибо

Tommy

ответ

3

Перейти на этот сайт в своем браузере и открыть инструменты разработчика (F12 или CTRL + SHIFT + I). Перейдите на вкладку сети и перезагрузите страницу с помощью F5. Появится список запросов. В нижней части списка вы увидите асинхронные запросы, сделанные для получения информации. Эти запросы получают данные в json форме с footballapi.pulselive.com. Вы можете сделать то же самое в сценарии приложений. Но вы должны отправить правильную строку заголовка «origin» или ваш запрос будет отклонен. Вот пример.

function fetchData() { 
    var url = "http://footballapi.pulselive.com/football/stats/player/2064?comps=1"; 
    var options = { 
    "headers": { 
     "Origin": "http://www.premierleague.com" 
    } 
    } 
    var json = JSON.parse(UrlFetchApp.fetch(url, options).getContentText()); 
    for(var i = 0; i < json.stats.length; i++) { 
    if(json.stats[i].name === "goals") Logger.log(json.stats[i]); 
    } 
} 
+0

Спасибо! Это прекрасно отвечает на мой запрос и открывает глаза на мир возможностей и понимание, которое вы можете получить в своем браузере, о котором я не знал. – Tommy

1

Пожалуйста, попробуйте следующее решение:

var options = 
{ 
    "method" : "GET", 
    "followRedirects" : true, 
    "muteHttpExceptions": true 
}; 

var result = UrlFetchApp.fetch(url, options); 
Смежные вопросы