Javascript 在完成加载/重定向页面后将其刮除
有关页面:Javascript 在完成加载/重定向页面后将其刮除,javascript,node.js,request,cheerio,Javascript,Node.js,Request,Cheerio,有关页面: http://watch2gether.com/go#<link> 但是,在页面实际加载并重定向到最终页面之前,它会返回每个href属性的值,因此它实际上是在刮取,而不是复制 由于第二个页面仅在第一个页面被请求后加载,我如何使我的代码刮取第二个页面而不是第一个页面 由于第二个页面仅在第一个页面被请求后加载,我如何使我的代码刮取第二个页面而不是第一个页面 我没有完全理解你问题的这一部分。然而,我认为您正在经历的是javascript的异步特性 当你这样做的时候 $(链接)
http://watch2gether.com/go#<link>
但是,在页面实际加载并重定向到最终页面之前,它会返回每个href属性的值,因此它实际上是在刮取,而不是复制
由于第二个页面仅在第一个页面被请求后加载,我如何使我的代码刮取第二个页面而不是第一个页面
由于第二个页面仅在第一个页面被请求后加载,我如何使我的代码刮取第二个页面而不是第一个页面
我没有完全理解你问题的这一部分。然而,我认为您正在经历的是javascript的异步特性
当你这样做的时候
$(链接)。每个(功能(i,链接){
//您的附加代码在这里
})
javascript的异步特性根据$('links')上的CSS选择器获取所有链接。加载所有链接后,它开始执行其余代码,并相应地重定向/执行操作
请检查javascript的事件循环或异步性质
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'));
});
});