0
我想從一些網頁檢索執行的JavaScript名。如何在使用Node.js的HTTP請求中獲得關注的javascripts名稱?
是否有使用request模塊或另一個Node.js的一種方式?
request.get('http://google.com', function(err, res, body){
... console.log(res.executedScriptNames);
})
我想從一些網頁檢索執行的JavaScript名。如何在使用Node.js的HTTP請求中獲得關注的javascripts名稱?
是否有使用request模塊或另一個Node.js的一種方式?
request.get('http://google.com', function(err, res, body){
... console.log(res.executedScriptNames);
})
你可以找到所有的網絡事件,返回類型的JavaScript的內容,使用無頭瀏覽器。在下面的例子中,我將使用phantomjs獲取由此引發類型的JavaScript本計算器問題網頁上以響應事件。所以,基本上我們會盡力抓住這些事件:
$ 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
你可以使用DOM解析器找到腳本標記。這會照顧所有靜態插入腳本標籤,但不會發現是通過JavaScript插入時的頁面在瀏覽器中實際運行腳本標籤。 – jfriend00