Sie können alle Netzwerkereignisse herausfinden, welche Inhalte vom Typ Javascript zurückkehren, eine Maden Browser. Im folgenden Beispiel verwende ich phantomjs, um die Ereignisse abzurufen, die eine Antwort vom Typ javascript auf dieser stackoverflow-Fragenseite selbst ausgelöst haben. Also, im Grunde werden wir versuchen, diese Ereignisse zu erfassen:
$ cat example.js
"use strict";
var page = require('webpage').create(),
system = require('system'),
address;
address = 'http://stackoverflow.com/q/42036173/1005215';
page.onResourceReceived = function (res) {
if (res.contentType.match(/javascript/)) {
console.log(res.url)
}
};
page.open(address, function (status) {
if (status !== 'success') {
console.log('FAIL to load the address');
}
phantom.exit();
});
$ ./node_modules/phantomjs/bin/phantomjs example.js
https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js
https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js
https://cdn.sstatic.net/Js/stub.en.js?v=fb1e02135f20
https://cdn.sstatic.net/Js/stub.en.js?v=fb1e02135f20
https://cdn.sstatic.net/clc/clc.min.js?v=e297fe5bed6f
https://cdn.sstatic.net/clc/clc.min.js?v=e297fe5bed6f
https://cdn.sstatic.net/Js/full-anon.en.js?v=a0fe0d0994a1
https://cdn.sstatic.net/Js/full-anon.en.js?v=a0fe0d0994a1
http://edge.quantserve.com/quant.js
http://static.adzerk.net/ados.js
http://edge.quantserve.com/quant.js
http://static.adzerk.net/ados.js
https://cdn.sstatic.net/Js/snippet-javascript.en.js?v=c681521379d1
https://cdn.sstatic.net/Js/post-validation.en.js?v=fce27e94a6e2
https://cdn.sstatic.net/Js/snippet-javascript.en.js?v=c681521379d1
https://cdn.sstatic.net/Js/post-validation.en.js?v=fce27e94a6e2
https://cdn.sstatic.net/Js/external-editor.en.js?v=fc20a49e5703
https://www.google-analytics.com/analytics.js
http://b.scorecardresearch.com/beacon.js
https://cdn.sstatic.net/Js/external-editor.en.js?v=fc20a49e5703
https://www.google-analytics.com/analytics.js
http://b.scorecardresearch.com/beacon.js
https://cdn.sstatic.net/Js/prettify-full.en.js?v=c8fdcebf5ffa
https://cdn.sstatic.net/Js/prettify-full.en.js?v=c8fdcebf5ffa
http://engine.adzerk.net/ados?t=1486193384630&request=%7B%22Placements%22:[%7B%22A%22:22,%22S%22:8277,%22D%22:%22adzerk1757851126%22,%22AT%22:4,%22Z%22:[43]%7D,%7B%22A%22:22,%22S%22:8277,%22D%22:%22adzerk8365673
47%22,%22ATA%22:[5,17,2221],%22Z%22:[45]%7D],%22Keywords%22:%22javascript%2Cnode.js%2Crequest%22,%22Referrer%22:%22%22,%22IsAsync%22:true%7D
http://engine.adzerk.net/ados?t=1486193384630&request=%7B%22Placements%22:[%7B%22A%22:22,%22S%22:8277,%22D%22:%22adzerk1757851126%22,%22AT%22:4,%22Z%22:[43]%7D,%7B%22A%22:22,%22S%22:8277,%22D%22:%22adzerk8365673
47%22,%22ATA%22:[5,17,2221],%22Z%22:[45]%7D],%22Keywords%22:%22javascript%2Cnode.js%2Crequest%22,%22Referrer%22:%22%22,%22IsAsync%22:true%7D
http://static.adzerk.net/Extensions/adFeedback.js
http://static.adzerk.net/Extensions/adFeedback.js
https://www.googletagservices.com/dcm/dcmads.js
https://www.googletagservices.com/dcm/dcmads.js
https://www.googletagservices.com/dcm/impl_v37.js
https://www.googletagservices.com/dcm/impl_v37.js
http://pagead2.googlesyndication.com/pagead/osd.js
http://pagead2.googlesyndication.com/pagead/osd.js
https://clc.stackoverflow.com/markup.js?omni=AndQltTPTNQIAAAAAM1rgQICAAAAAgAAAAAcAAAAfGphdmFzY3JpcHR8bm9kZS5qc3xyZXF1ZXN0fAAPFwvS4zhP5nDC&lw=460&zc=25&pf=9
https://clc.stackoverflow.com/markup.js?omni=AndQltTPTNQIAAAAAM1rgQICAAAAAgAAAAAcAAAAfGphdmFzY3JpcHR8bm9kZS5qc3xyZXF1ZXN0fAAPFwvS4zhP5nDC&lw=460&zc=25&pf=9
https://pagead2.googlesyndication.com/pagead/js/r20170130/r20110914/activeview/osd_listener.js
https://pagead2.googlesyndication.com/pagead/js/r20170130/r20110914/activeview/osd_listener.js
https://tpc.googlesyndication.com/sodar/akyi97Q8.js
https://tpc.googlesyndication.com/sodar/akyi97Q8.js
https://pagead2.googlesyndication.com/bg/Ro40R1A0hMb7Dr8cRp0qxN1ZFlZvSN3Q_N9oN3lQJ6s.js
https://pagead2.googlesyndication.com/bg/Ro40R1A0hMb7Dr8cRp0qxN1ZFlZvSN3Q_N9oN3lQJ6s.js
Sie könnten einen DOM-Parser verwenden, um das Script-Tags zu finden. Das würde sich um alle statisch eingefügten Skript-Tags kümmern, würde aber keine Skript-Tags finden, die über Javascript eingefügt werden, wenn die Seite tatsächlich in einem Browser ausgeführt wird. – jfriend00