2016-06-24 8 views
2

страницу в вопрос:Scrape страницы после ее завершения загрузки/перенаправлены

http://watch2gether.com/go#<link> 

Мне нужно, чтобы иметь возможность, чтобы очистить эту страницу после того, как он загружен полностью и перенаправляется в конечный пункт назначения.

Теперь, чтобы уточнить мой вопрос: я использую запрос и Cheerio, чтобы попытаться очистить страницу, и я успешно с этим:

var searchTerm = 'https://www.youtube.com/watch?v=link'; 
var url = 'https://www.watch2gether.com/go#' + searchTerm; 

request(url, function(err, resp, body){ 
    $ = cheerio.load(body); 
    links = $('link'); //use your CSS selector here 
    $(links).each(function(i, link){ 
    sleep.sleep(2); 
    console.log($(link).text() + ':\n ' + $(link).attr('href')); 
    }); 
}); 

Однако, он возвращает значения каждого HREF приписывать дО страницы фактически загружаются и перенаправляются на последней странице, так что это на самом деле выскабливание http://watch2gether.com/go# вместо http://watch2gether.com/rooms/

, поскольку вторая страница загружается только после того, как первая просьба, как я мог бы сделать мой код скрести вторую страницу вместо первого?

ответ

0

Поскольку вторая страница загружается только после запроса первого, как я могу сделать свой код царапиной второй страницы, а не первой?

Я не совсем понял этот сегмент вашего вопроса. Однако, я думаю, что вы испытываете асинхронный характер javascript.

Когда вы

$ (ссылки) .each (функция (я, ссылка) {// ваш дополнительный код здесь })

Асинхронный характер JavaScript получает все ссылки в соответствии с вашим селектором CSS на $ ('links'). После того, как он загрузил все ссылки, он начинает выполнять остальную часть вашего кода и перенаправляет/делает вещи соответственно.

Пожалуйста, проверьте цикл событий или асинхронный характер javascript.