Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Проблема с парсером из-за подгружающегося фильтра (https://javascript.ru/forum/dom-window/68130-problema-s-parserom-iz-za-podgruzhayushhegosya-filtra.html)

Gh. 28.03.2017 04:36

Проблема с парсером из-за подгружающегося фильтра
 
Возникла проблема с парсером.

var request = require('request');
var cheerio = require ('cheerio');
url='https://www.premierleague.com/players/3170/Fraser-Forster/stats?se=54'
request ({url, method: 'GET', encoding: 'binary'},	
function (err,res,body) {
if (err) throw err; 
setTimeout ( function () {
var $=cheerio.load(body);
var name=$("div.name").text();
var team=$("div.info").first().text();
var position=$("div.info").last().text();
var games=$("div.topStatList").text();
console.log(name);
console.log(team);
console.log(position);
console.log(games);
},100)});

Изначально, заходя на страницу со статистикой игрока https://www.premierleague.com/player...-Forster/stats отображается общая статистика за все годы карьеры, если в выпадающем списке выбрать последний сезон, то к ссылке добавляется ?se=54, с которой я граблю. Но если пройти по ссылке, то видно что изначально подгружается общая статистика и только потом за последний сезон, который мне и нужен.
Так и мой код загружает первоначальную ОБЩУЮ статистику за все сезоны, а не за последний.
Пробовал таймер ставить- не помогает.
Хотел перед загрузкой данных передать атрибуту data-option-id значение 54. Но ничего не происходит. Помогите решить проблему.

Alexandroppolus 28.03.2017 09:02

Сама по себе статистика подгружается аяксовым запросом https://footballapi.pulselive.com/fo...compSeasons=54 , который возвращает json.

но к нему надо прилепить дополнительные заголовки, чтобы сервер не заругался. Собственно твоя задача в том, чтобы выяснить, откуда эти заголовки брать.

Запрос можно увидеть в тех же дебажных тулзах, на вкладке Network (тип запроса - XHR).


Часовой пояс GMT +3, время: 12:35.