太洋社のコミック発売予定一覧のかわりを探そう

コミック発売予定一覧 | Books | 株式会社 太洋社

毎月ここの一覧スクレイピングしてあれこれしてたんですけど、4月分が取れない
どうしたことか、と思ってたらなぁ

かなしいお知らせがありました

お知らせ 2016.03.10

コミック発売予定一覧をご利用いただきありがとうございます。
1997年より発売予定一覧コンテンツを提供してまいりましたが、
2016年3月発売分をもって休止することになりました。
今後の発売予定一覧掲載につきましては、別サイトで行うよう調整中です。
詳細につきましては、追ってお知らせいたします。
※comiclist.jpのTwitter(@comiclist_jp)でもお知らせいたしますので、あわせてご確認ください。

いずれ代替サイトが出来るようなんだけど、すぐとはいかなさそう
代わりを探す必要がありますよ

で、欲を言うとAPIなんかあるとうれしい
ダメ元で探してみると

あった

新刊コミック一覧取得API – HiWの気になることメモ

こんなのが取れます

{

"column":["id","url","img","eisbn","date","ttl","ttl_kana","athr","dprc","bprc","ahid_id","jun_id","cpn_id","ser_id","lbl_id","s_rec","s_new","s_res","s_frc","f_adlt","fc1_id","fc2_id","fc3_id","viewer_id","viewer_url"],

"list":[
  [1,13854778,"non",9784776742227,0,"大正初恋洋裁店","non","梶山ミカ",-1,0,"ミッシィコミックスNextcomicsF",1,0,89,36,0,0,0,0,0,"4月1日",0,1,1,"http://search.books.rakuten.co.jp/bksearch/dt/g001001/bathr%B3%E1%BB%B3%A5%DF%A5%AB/?s=2"],
  [2,13854779,"non",9784776742234,0,"暴君ヴァーデルの花嫁 初夜編(6)","non","松本帆加",-1,0,"ミッシィコミックスNextcomicsF",1,0,89,36,0,0,0,0,0,"4月1日",0,1,1,"http://search.books.rakuten.co.jp/bksearch/dt/g001001/bathr%BE%BE%CB%DC%C8%C1%B2%C3/?s=2"],
  // 略
  [740,13855076,"non",9784778119768,0,"シガレットシュガー","non","嶋二",-1,0,"ショコラコミックス",3,0,89,36,0,0,0,0,0,"4月下旬",0,1,1,"http://search.books.rakuten.co.jp/bksearch/dt/g001001/bathr%C5%E8%C6%F3/?s=2"]
]
}

jsonとは名ばかりでだいたいcsvでした
でもスクレイピングするより全然手間がかかんないので大歓迎だ

jsonなので Invoke-RestMethod で楽ちんな気がしますが

  • UTF8だから日本語文字化けしちゃう
  • BOM付いててjsonをパースできない

のでだめでした
そのへんは Invoke-WebRequest して自力でどうにかせねばならん

どうにかします

$Uri = 'http://books.rakuten.co.jp/event/book/comic/calendar/js/booklist.json'
$response = Invoke-WebRequest -Uri $Uri
$rawBytes = $response.RawContentStream.ToArray()
$json = [System.Text.Encoding]::UTF8.GetString(
        $rawBytes[3..$($rawBytes.Length-1)]
    ) | ConvertFrom-Json

受け取ったデータを [byte[]] にしてBOM取り除くためにsliceして、UTF8にしてから ConvertFrom-Json します
簡単ですね
簡単でした

あとはまぁ

$json.list | %{$_ -join "`t"} | ConvertFrom-Csv -Delimiter "`t" -Header $json.column

みたいに使いやすく加工したらいいんじゃないかと思います

join して ConvertFrom-Csv なんてしてるけどもっとうまい方法はある気がする
あとで調べる

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中