casperJS никогда не заканчивает работу
Я столкнулся с проблемой при использовании casperJS, я хочу получить видео тег src, используя casperJS, но не могу. Дело в том, что когда я хочу загрузить свою страницу, это занимает слишком много времени (см. Код ниже), даже если я отключаю все бесполезные функции, которые могут быть загружены. Важно отметить, что я не могу отключить все функции, потому что атрибут src тега video вначале отсутствует, он "динамически" создается с использованием javascript (извлекает его из базы данных), поэтому, по крайней мере, мне нужно загрузите этот документ.js для создаваемого атрибута src.
Я надеюсь, что кто-то сможет помочь! хорошего дня
РЕДАКТИРОВАТЬ: я обнаружил, что проблема заключается в том, что документ действительно имеет тег
РЕДАКТИРОВАТЬ 2: после некоторых исследований я обнаружил, что был запрос php, который ответил на все, что я искал, я думаю, что я собираюсь исследовать этот путь, я бы сделал некоторые изменения, если это необходимо
var nom;
var casper = require('casper').create({
pageSettings: {
loadImages: false, // do not load images
loadPlugins: false // do not load NPAPI plugins (Flash,
Silverlight, ...)
}
});
casper.options.waitTimeout = 100000;
casper.options.onResourceRequested = function(casper, requestData, request){
var skip = [
'googleads.g.doubleclick.net',
'cm.g.doubleclick.net',
'www.googleadservices.com',
'https://story.snapchat.com/static/css/main.1fa6648e.css',
'https://story.snapchat.com/static/css/base.css',
'https://story.snapchat.com/static/css/vendor.7cd84aaa.css',
'https://snapnet-cdn.storage.googleapis.com/fonts/avenir-next/AvenirNext-
Medium.woff2',
'https://snapnet-cdn.storage.googleapis.com/fonts/avenir-next/AvenirNext-
DemiBold.woff2',
'https://snapnet-cdn.storage.googleapis.com/fonts/avenir-next/AvenirNext-
Bold.woff2',
'https://sc-static.net/scevent.min.js',
'https://www.googletagmanager.com/gtag/js?id=UA-41740027-40',
'https://web-frontend-dot-sc-
analytics.appspot.com/analytics/web/refresh_client',
'https://www.google-analytics.com/analytics.js',
'https://tr.snapchat.com/cm/i?sync_modes=110%2C130',
'https://story.snapchat.com/service-worker.js',
'https://web-frontend-dot-sc-analytics.appspot.com/analytics/web/events',
'https://storysharing.snapchat.com/v1/fetch/coralie.officie?
request_origin=ORIGIN_WEB_PLAYER',
'https://search.snapchat.com/upnext?id=coralie.officie&locale=fr-FR',
'https://web-frontend-dot-sc-analytics.appspot.com/analytics/web/events',
'https://web-frontend-dot-sc-analytics.appspot.com/analytics/web/events',
'https://search.snapchat.com/fetchStories',
'https://web-frontend-dot-sc-analytics.appspot.com/analytics/web/events',
];
skip.forEach(function(needle) {
if (requestData.url.indexOf(needle) > 0) {
request.abort();
}
});
}
function videoo(){
vid = document.querySelector("video");
return vid.attributes[0].value;
}
casper.start("https://story.snapchat.com/s/coralie.officie",function(){
this.waitForSelector("video");
})
casper.then(function(){
nom = this.evaluate(videoo);
this.echo(nom);
});
casper.run();