素朴な方法でwikiからアニメを取得した話
アニメの一覧を取得しないと夜も眠れない病にかかってしまった
やり方を模索していたところ
こちらのブログに辿り着き
素朴にwikiをスクレイピングして取得することにした
簡単!便利!のモジュールをありがたく使わせていただき
スクレイピング開始
// モジュール読み込み var client = require('cheerio-httpcli'); var date = new Date(); var fullYear = date.getFullYear(); for (var year = 2000; year <= fullYear; year++) { var text = year + '年のテレビアニメ'; var search_txt = encodeURIComponent(text); // スクレイピング開始 client.fetch('https://ja.wikipedia.org/wiki/Category:' + search_txt, {}, function (err, $, res) { // アニメタイトルを取得 $('.mw-category-group a').each(function() { console.log('"' + $(this).text() + '",' + $(this).attr('href')); }); // 2ページがあったとき var nextPageLink = $("a:contains('次のページ')").attr('href') if (nextPageLink) { client.fetch('https://ja.wikipedia.org/' + nextPageLink, {}, function (err, $, res) { // 記事のタイトルを取得 $('.mw-category-group a').each(function() { console.log('"' + $(this).text() + '",' + $(this).attr('href')); }); }); } }); }
こうすると、アニメのリストがガガガーーーーっと出てくる
ただし、問題が多々ある
- 全部取れてるかわからない←ひどい
- 3ページに渡ってたらもうダメ←一応確認して2ページ目までだったからいいか
- 非同期処理が入ってないから、なんかヤバそう←/(^o^)\
一応それっぽいリストが出来たので
今回はおk
(「完ぺきを求める前にまず完成させろ」というありがたいお言葉の元にやった)
他に考えてた方法
対象がwikiだから公式のAPI使おうとか
qiita.com
SQL書くかーーーとかも考えたけど
littlewing.hatenablog.com
パパっと雑でもいいから早くデータを取れる方法はやっぱスクレイピングだった