taiki-t's diary

React Native, Rails そして雑多な記録: The world is waiting for you to give it a meaning.

一括ダウンロードがないページで無理やり全部ダウンロードする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で簡単にとってこれる

f:id:taiki-t:20180521200939p:plain

余談

最近暑くね