2017-02-04 36 views
0

我想從一些網頁檢索執行的JavaScript名。如何在使用Node.js的HTTP請求中獲得關注的javascripts名稱?

是否有使用request模塊或另一個Node.js的一種方式?

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

how to get followed scripts name

+0

你可以使用DOM解析器找到腳本標記。這會照顧所有靜態插入腳本標籤,但不會發現是通過JavaScript插入時的頁面在瀏覽器中實際運行腳本標籤。 – jfriend00

回答

1

你可以找到所有的網絡事件,返回類型的JavaScript的內容,使用無頭瀏覽器。在下面的例子中,我將使用phantomjs獲取由此引發類型的JavaScript本計算器問題網頁上以響應事件。所以,基本上我們會盡力抓住這些事件: 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 
相關問題