В общем случае - если веб-сайт является дружественным к SEO, вы можете сделать это путем подмены строки пользовательского агента искателя веб-страниц. Это возвращает рендер DOM, который может быть проанализирован Cheerio.
В конкретном случае - Instagram возвращает рендер DOM на своих мобильных веб-сайтах. Объедините строку пользовательского агента мобильного телефона, и вы можете проанализировать возвращаемые данные.
var options = {
url: user.instagram_url,
headers: {
'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.3 (KHTML, like Gecko) Version/8.0 Mobile/12A4345d Safari/600.1.4'
}
};
request(options, function(error, response, html) {
if (!error) {
console.log('Scraper running on Instagram user page.');
// Use Cheerio to load the page.
var $ = cheerio.load(html);
// Code to parse the DOM here
}
}
Нет кода, нет точного сообщения об ошибке, не точные шаги, чтобы воспроизвести, я предполагаю, что вы пропали без вести [как к спрашивать] (http://stackoverflow.com/help/how-to- просить). Конечно, с клавиатурой и отладчиком вы можете очистить даже веб-сайт, созданный с помощью 'React' с' Cheerio'. Но вам может понадобиться какой-то более сильный инструмент, такой как 'PhantomJS' или' SeleniumHQ', способный запускать скрипты, дожидаться их исполнения и т. Д. – xmojmr
Это концептуальный вопрос с двоичным ответом - спасибо за то, что он бесполезен. –
Уважаемый @Kyle, полезность основана на мнениях. Я верю, что ваш вопрос недостаточно хорош, и вы можете его улучшить. Я не вижу «концепции» в вашем вопросе. Бинарный ответ «да», это возможно. Но что вы имеете в виду, отлаживая документ? Какой документ? Что такое сообщение об ошибке? jsFiddle для воспроизведения? – xmojmr