Created
October 30, 2019 04:05
-
-
Save piayo/417f4db83bf7d999801e807e0d436875 to your computer and use it in GitHub Desktop.
jsdoit から HTMLソースをバックアップ
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// -------------------------- | |
// jsdoit-backup-html.js | |
// jsdoit から HTMLソースをバックアップ | |
// | |
// usage: | |
// $ node jsdoit-backup-html.js | |
// -------------------------- | |
var mkdirp = require('mkdirp'); | |
var fs = require('fs'); | |
var request = require('sync-request'); | |
function getHTML( url ) { | |
const response = request('GET', url); | |
return response.body; | |
} | |
function getTitle( html ) { | |
const myRegexp = /<title>([\s\S]*?)<\/title>/i; | |
const match = myRegexp.exec( html ); | |
let title; | |
title = match[1]; | |
title = title.replace(/(^\s+)|(\s+$)/g, ''); | |
return title; | |
} | |
function titleToFileName( url, title ) { | |
const slag = url.split("/").pop(); | |
const fkey = title.replace(/[\/.\?:!]/g, "_"); | |
const name = `[${slag}] - ${fkey}`; | |
return name; | |
} | |
async function saveFile( filePath, html ) { | |
fs.writeFile( filePath , html, (err) => { | |
if ( err ) { | |
console.log( "エラーが発生しました。" + err ); | |
throw err | |
} | |
else { | |
// console.log( "ファイルが正常に書き出しされました" ); | |
} | |
}); | |
} | |
function job( url ) { | |
const html = getHTML( url ); | |
const title = getTitle( html ); | |
const name = titleToFileName( url, title ); | |
const fileName = __dirname +`/dist/${name}.html`; | |
console.log( `>> 取得中... URL: ${url} / title: ${title}` ); | |
saveFile( fileName, html ); | |
} | |
/* | |
URL のリストは、devtools, 各ページで | |
copy(Array.from(document.querySelectorAll(".thumb a[rel='bookmark']")).map(a=>a.href).join("\n")) | |
をするといいかな。 | |
*/ | |
const myURLs = [ | |
"http://jsrun.it/piayo/c2jr", | |
// ... | |
]; | |
myURLs | |
.forEach( url => { | |
job( url ); | |
}); | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
■ 2019年10月31日にサービス終了 jsdo.itのファイルを保存する方法
https://iwb.jp/jsdoit-20191031-closed-backup-files-save/
の
https://iwb.jp/s/zip/jsdoit-save-all.zip -> save.js がすごかった!
これ使ったほうがいいです。