Help us understand the problem. What is going on with this article?

センター試験過去問(2007年~今年)をまとめてダウンロードする

More than 3 years have passed since last update.

某衛星予備校のオンライン過去問DBは無料でそれなりに便利なのですが、
以下の理由からローカルにコピーを取ろうと思い、bashでがんばりました。

  • オンラインでないとアクセスできない(当然ですが…)
  • しばしば動作が不安定
  • 遅い
  • UIがIE向けに最適化されてる(!)

実行環境は Ubuntu 16.04.01 上の GNU bash 4.3.46 です。
bash on Windows でも動くかどうかは検証してませんが、おそらくPowerShellでも同じことができると思います。

過去問、解答、解説をPDFで取得し、
カレントディレクトリ以下に、年度ごとにフォルダを区切って保存します。
この過程でwget-Pオプションの存在をはじめて知りました。

以下、そのスクリプトです。

dlCenter.sh
#! /bin/bash

function download (){
    if [ -e $1/$2.pdf ] ; then
        echo $1/$2.pdf found. Skipping...
    else
        wget -P $1 $3/$2.pdf
    fi
}

for year in $(seq 2007 `date +%Y`)
do
    for subject in "eigo" "listning" "kokugo" "kokugo_k" "sekaishi-b" "sekaishi-a" "nihonshi-b" "nihonshi-a" "chiri-b" "chiri-a" "g-shakai" "rinri" "s-keizai" "rinri_seikei" "sugaku-1a" "sugaku-1" "sugaku-2b" "sugaku-2" "butsuri" "kagaku" "seibutsu" "chigaku" "rikasougou-a" "rikasougou-b"
    do
        #年度によってリクエスト先が異なる…なんてこった
        if [ $year -le 2011 ] ; then
            host="www.toshin.com/center/${year}/pdf"
        else
            if [ $year -eq `date +%Y` ] ; then
                host="sokuhou.toshin.com"
            else
                host="sokuhou.toshin.com/${year}"
            fi
        fi

        #問題
        download ${year} ${subject} ${host}/q
        #解答
        download ${year} ${subject}_ans ${host}/a
        #解説
        download ${year} ${subject}_k ${host}/kaisetsu
    done
done

年度によっては教科があったりなかったりするので、かなり404が出るかと思いますが、
とりあえず自分が受験する教科だけダウンロードできればいいので、目を瞑ることにします。

なお、2007年より前の問題はディレクトリ構造がバラバラなので対象外としています。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away