반응형
개발자도구 이용
- 현재 페이지에 존재하는 모든 자바스크립트 목록 조회
document.querySelectorAll("script[src]").forEach(function(item) { console.log(item.src) })
- 현재 페이지에 존재하는 자바스크립트 목록 조회 및 다운로드
function download_logic(datatype, data, filename) {
var a = document.createElement("a");
a.href = `${datatype};charset=utf-8;base64,${base64Encode(data)}`;
a.setAttribute("download", filename);
a.click();
}
function js_download(scr_tag,extension)
{
for ( js_addr of scr_tag )
{
let js_fname_spl = js_addr.split('/');
let js_fname = js_fname_spl[js_fname_spl.length-1];
try {
( async() => {
const x = await fetch(js_addr);
download_logic("data:text/plain", await x.text() , js_fname.replace('.js',extension) );
})();
} catch (error) { }
}
return '다운 완료';
}
function base64Encode( stringInput ) {
var normalizedInput = encodeURIComponent( stringInput ).replace(
/%([0-9A-F]{2})/g,
function toSolidBytes( $0, hex ) {
return( String.fromCharCode( "0x" + hex ) );
}
);
return( btoa( normalizedInput ) );
}
function select_js(opt) {
let scr_tag = []
var re = new RegExp(`${location.origin}`,"gi");
document.querySelectorAll("script[src]").forEach(
function(item) {
if ( opt == 'origin' ) {
if ( item.src.match(re) ) scr_tag.push(item.src); }
else { scr_tag.push(item.src); }
}
)
scr_tag = scr_tag.sort()
table(scr_tag)
return scr_tag;
}
// js 파일 조회
// let scr_tag = select_js('all') = 페이지에 모든 js 조회
// let scr_tag = select_js('origin') = origin에 해당하는 js 조회
let scr_tag = select_js('origin');
// js 파일 다운로드
// js_download(scr_tag,'.js') = 조회한 js 파일 다운 후 확장자를 js로 저장
js_download(scr_tag,'.txt');
크롬 확장 플러그인 이용
Save All Resources 확장 플러그인을 이용하면 js 뿐만 아니라 모든 리소스를 다운로드할 수 있다.https://chrome.google.com/webstore/detail/save-all-resources/abpdnfjocnmdomablahdcfnoggeeiedb?hl=en
위 플러그인 사용 시 해당 페이지에 존재하는 모든 리소스 파일을 UI 폴더 구조를 유지하면서 다운로드한다.
플러그인 등록 후 크롬을 재시작하면 개발자도구에 ResourcesSaver라는 탭이 생성되고원하는 사이트의 페이지로 이동하여 SaveAllResources 버튼을 클릭하면 리소스 파일을 다운받을 수 있다.
반응형
'업무 자동화' 카테고리의 다른 글
VBA 메크로 모음 (0) | 2021.04.28 |
---|---|
VBA 행 수를 기준으로 파일 분할 (0) | 2021.04.13 |
아이템 복사기 (0) | 2021.03.17 |
소스코드 괄호 검사 (1) | 2021.03.12 |
xss 인코딩 도구 (0) | 2021.03.02 |