一括ダウンロードがないページで無理やり全部ダウンロードするchrome console スニペット
プロローグ
一括ダウンロードしたいけど一括ダウンロードボタンがない時がある。 ログインが必要ない画面だったらwgetなりで引っ張ってくればいいんだけど、管理画面とかだとちょっとしたそういうのがめんどくさい。 chrome consoleからやればページさえ開けていれば一括ではないけれど自動化できるのでそうすることにした。
コード
const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms)) const links = $$("任意のセレクター, a要素を選択") for (const link of links) { link.click(); await sleep(3000); console.log(link) }
sleepは状況に合わせて適当に時間を。for...of
を使ったのは、forEach
とかmap
内では非同期処理ができなかったから。
例
papertrailのlogダウンロードならこんな感じ
const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms)) const links = $$("#archives-list > ul > li > span > a") for (const link of links) { link.click(); await sleep(3000); console.log(link) }
他
セレクターもchrome consoleで簡単にとってこれる
余談
最近暑くね