Javaではてなブックマークのスクレイピングに挑戦しよう(ネット上の大規模データ取得編)

こんにちは、らくからちゃです。

以前から何回かに分けてお伝えしてきた『Javaはてなブックマークのデータ解析入門』シリーズですが、お陰さまで沢山の人に読んでもらえて頂いたようで、書き手冥利に尽きます。

さて、過去3回にわけて、初歩的なところから書き綴ってきましたが、そろそろ本題に入りましょう。このシリーズの本来の目的は『ネット上から大規模データを取得して解析する』ということです。ずいぶん長くはなりましたが、今回で前半の『ネット上の大規模データの取得』について一段落つけてみたいと思います。

近年、こういった大規模なデータを『ビッグデータ』なんて呼ぶこともあり、みなさまも耳にしたことがあるかもしれません。

今回からは、かなり大規模なデータを対象とすることになります。今回は、今まで行ってきた下記3つのノウハウを全て組み合わせて使います。

  1. ブックマークデータの収集編)
  2. 対象データのスクレイピング編
  3. sqliteへの格納編

1では、json形式のデータの利用について。2では、jsoupを利用したスクレイピングについて。3では、sqliteの利用方法について確認してきました。本稿は、前記の3記事を既に読了済みの前提で記載させて頂きます。

それじゃあ、

いっくぞー( ・`д・´)

ライブラリの取得と下ごしらえ

続きを読む

Javaではてなブックマークのスクレイピングに挑戦しよう(sqliteへの格納編)

こんにちは、らくからちゃです。

前回に引き続きまして、はてなブックマークからブックマークのデータをJavaを使って抽出し、解析を行う方法のプログラムの作り方についてお話したいと思います。本稿は、以下の記事の続きとなりますので、ご承知おき下さい。

さて前回は、URLではなく、特定の『サイト』に付けられたブックマークを一斉に取得する方法についてご説明いたしました。この方法を行えば、過去記事につけられたブックマークの全てのデータを抽出することも出来るかと思います。

ただ、ある程度大量のデータを扱うのであれば、テキストファイルで処理するのはちょった大変ですよね?そこで、今回は、取得したデータを、簡易データベースである『sqlite』に格納し、効率的に分析する方法についてご紹介したいと思います。

ところで皆さん、データベースというと、どういったものを思い浮かべますか?ウェブ系の人であればMySQL、業務系の人であればOracle、事務系の人であればAccessなんかを想像されるかもしれませんね。

世の中には色々なデータベース・ソフトウェアは有りますが、個人でちょっとしたデータを扱うにはsqliteが圧倒的におすすめです。いろいろと理由はあるのですが、

  1. 無償で使える
  2. パフォーマンスが爆速
  3. サーバの構築が不要

で使えることが大きなメリットですね。パフォーマンスについては、『Firefoxの内部データを管理したり組み込みで使ったりしてるアレでしょ?』ってイメージしか無かったのですが、数十万行単位のデータでも比較的さくさく扱えます。(参考:パフォーマンス比較 Cassandra、Mongodb、SQLite、H2、MySQL、Postgres - C/pHeR Memo - Java とか。Eclipse とか。)

また、サーバを構築する必要がなく、データのバックアップや移行も『コピペでOK』という、ずぼらなDIYエンジニアには最適です。

前回は、『HTMLでHelloWorldって表示させることのが出来ればOKです!』と言いましたが、今回はそれに加えて簡単なSQLの知識が必要になります。(まあ、なくとも動かすまでは出来ると思いますが)。ざっくり言うと『select文でHelloWorldって表示させることが出来るくらいの知識』ですかね。ちょっと自信がない人は、この辺の本もどうぞ!

それじゃあ、

いっくぞー( ・`д・´)

データベースファイルの作成

続きを読む

Javaではてなブックマークのスクレイピングに挑戦しよう(対象データのスクレイピング編)

こんにちは、らくからちゃです。

前回に引き続きまして、はてなブックマークからブックマークのデータをJavaを使って抽出し、解析を行う方法のプログラムの作り方についてお話したいと思います。本稿は、以下の記事の続きとなりますので、ご承知おき下さい。

さて、前回の記事では『指定のURLにつけられたはてなブックマークのデータを、Javaを使って引っこ抜いてくる方法』についてご説明いたしました。対象となるURLのリストさえあれば、ブックマークをCSVとして保存して解析することが可能です。

ただ、その『リスト』を作るのが大変なんですよね(笑)。例えば『自分のサイトの過去記事つけられたはてブのデータをまとめて引っこ抜いてくる』ということがしたい場合、リストを作るところも自動化したいですよね?

今回は、ウェブサイト上からデータを抽出する技術、一般的にスクレイピング』と呼ばれる技術を使ってその作業を自動化したいと思います。この技術は、あらゆるウェブサイトからデータを抽出する際に応用ができるので、エンジニアさんは覚えておいても損が無いかもしれません。(コンサル的にも、サボりたいときに結構便利)

前回は『JavaでHelloWorldさえ書ければOKです!』と言いましたが、今回はそれに加えて簡単なHTMLの知識が必要になります。ざっくりいうと『HTMLでHelloWordって表示させることが出来るくらいの知識』ですかね。ちょっと自信がない人は、この辺の本もどうぞ!

それじゃあ、

いっくぞー( ・`д・´)

ライブラリの取得と下ごしらえ

続きを読む

Javaではてなブックマークのスクレイピングに挑戦しよう(ブックマークデータの収集編)

こんにちは、らくからちゃです。

わたしは、学生の頃からデータの解析をするのが大好きで、いつも色んなグラフを見ながら『これってこういうことなんかな?』なんて考えて過ごしてきました。そんなこんなで、書いている記事も、なんか気がつけばグラフまみれになっているんですよねー。

さて、以前から何回か『はてなブックマーク』のデータについて、解析した結果を投稿させて頂きました。

役所が公表しているデータを元に解析するのも楽しいんですけど、こうやって一からデータを作り上げて行う解析も、中々ワクワクするんですよね(笑)。さて、こういった記事を投稿する度『これ、どうやってるんですか?』『なんか大変そうだなあ』といったコメントを頂きます。

こういった記事の元ネタになるデータは、プログラムを書いて一括で取得するようにしています。ですので、データ量が多くてもあんまり手間はありませんし、過去に作ったプログラムをちょいちょい手直ししながらデータ収集を行わせて頂いております。

プログラムは、Javaで実質数十行程度のコードで書かれています。わたし自身、職業エンジニアではなく、ただの下っ端コンサルですのでVBくらいしかまともには書けません。おそらく、普段書いているコードはJavaでHelloWorldが書ける程度の実力があれば多分OK』なレベルです。ちょっと自信がない人は、きしださんの

が超お勧めなので、まずはこの本からはじめましょう。 一応目標としては、

  1. ブックマークデータの収集
  2. 収集対象のURLの取得
  3. sliteへの格納
  4. gephiでの解析

といった感じで進めていきましょうか。ではでは、

いっくぞー( ・`д・´)

開発環境について

続きを読む

こんにちは、らくからちゃです。

こんにちは、らくからちゃです。

普段は『ゆとりずむ』というブログを書かせて頂いております。ご覧頂いたことがある方はいらっしゃいますでしょうか?

かなり雑多な内容を取り扱った雑記ブログですが、主に時事ネタ系の記事をメインに書いております。ただ中には、技術系の内容で気になったことも、ちょくちょく書かせていただいております。

扱っているテーマが随分と違いますので、見た人が混乱しないよう(?)内容に応じてブログそのものを分けたほうがいいのかな?と思い今回新しくブログを開設致しました。

URLが変わってしまうことになるのは大変恐縮ではございますが、何卒ご理解頂ますようお願い致します。

ではでは、今後共よろしくお願いします。