2017-02-04 4 views
0

Ich möchte ausgeführte javaScript-Namen von einer Webseite abrufen.Wie folgt Javascripts Name in HTTP-Anfrage mit Node.js?

Gibt es einen Weg in Node.js mit request Modul oder anderen?

request.get('http://google.com', function(err, res, body){ 
    ... console.log(res.executedScriptNames); 
}) 

how to get followed scripts name

+0

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

Antwort

1

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: enter image description here

$ 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