Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
2020年3月11日~2020年4月12日まで全巻無料公開している「小学館版 学習まんが 少年少女日本の歴史」のページ画像を保存するスクリプトです。Groovy + Geb(Selenium) + Mozilla Firefox を使用しています。小学館版 学習まんが 少年少女日本の歴史:
import geb.Browser
def books = [
'':'少年少女日本の歴史1 日本の誕生 旧石器・縄文・弥生時代',
'':'少年少女日本の歴史2 飛鳥の朝廷 古墳・飛鳥時代',
'':'少年少女日本の歴史3 奈良の都 奈良時代',
'':'少年少女日本の歴史4 平安京の人びと 平安時代前期',
'':'少年少女日本の歴史5 貴族のさかえ 平安時代中期・後期',
'':'少年少女日本の歴史6 源平の戦い 平安時代末期',
'':'少年少女日本の歴史7 鎌倉幕府の成立 鎌倉時代',
'':'少年少女日本の歴史8 南朝と北朝 南北朝・室町時代前期',
'':'少年少女日本の歴史9 立ちあがる民衆 室町時代後期',
'':'少年少女日本の歴史10 戦国大名の争い 戦国時代',
'':'少年少女日本の歴史11 天下の統一 安土・桃山時代',
'':'少年少女日本の歴史12 江戸幕府ひらく 江戸時代初期',
'':'少年少女日本の歴史13 士農工商 江戸時代前期',
'':'少年少女日本の歴史14 幕府の改革 江戸時代中期',
'':'少年少女日本の歴史15 ゆきづまる幕府 江戸時代後期',
'':'少年少女日本の歴史16 幕末の風雲 江戸時代末期',
'':'少年少女日本の歴史17 明治維新 明治時代前期',
'':'少年少女日本の歴史18 近代国家の発展 明治時代後期',
'':'少年少女日本の歴史19 戦争への道 大正時代・昭和初期',
'':'少年少女日本の歴史20 アジアと太平洋の戦い 昭和前期',
'':'少年少女日本の歴史21 現代の日本 昭和後期・平成',
'':'少年少女日本の歴史別巻1 人物事典 日本史で活躍した人びと',
'':'少年少女日本の歴史別巻2 史跡・資料館事典 日本史の舞台をたずねてみよう',
'':'少年少女日本の歴史 日本の歴史 平成の30年'
books.each {url, title ->
println(title) {
go url
// open menu
// get number of pages
def pages = Integer.parseInt($('div#page_indicator')?.text().split(' ')[2])
// close menu
// get encoded iamges in data URI
def list = []
(0..(pages-1)).each { page ->
list << $('img#right_img')?.@src
list << $('img#left_img')?.@src
// decode data & save iamges
list.eachWithIndex { dataUri, index ->
if(dataUri?.startsWith('data:') && dataUri.split(',').size() == 2) {
def encodedImage = dataUri.split(',')[1]
new File(title).mkdir()
new File("${title}/page-${index}.jpg").bytes = Base64.getDecoder().decode(encodedImage)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment