最近とある会社に丁稚奉公というか、2ヶ月で何か成果出せたらアルバイトにしてあげるということで出入りすることになった。今のところは交通費と食事代だけで無給である。
顔合わせ等を除けばまだ一回しか行っていないんだけれども、今はその会社のサービス運営自体にはまったくノータッチで、その会社のやっているサービスのデータベースを見てなんか解析してレポートを書こうかなという感じである。(居候みたいな感じで席を一つ借りて勝手に作業している。)
いったいどの程度までやればお金をくれるのかわからないのだが、早いうちにもらいたいものである。
自分以外にもデータ解析バイトはいて、その人はもう立ち上げようとしている新サービスのチームに入ってSNSのクローリングをしていたりする。クロール対象はTumblr、Pinterest、Instagram等なのだが、もはやTwitterすらろくに見てない僕(たまに書き込みはするけど)にはこいつらがどんなサービスなのかよくわからなかったりする。
その様子を眺めていて、ふと一ヶ月も放置しているComicInfo Editorのことを思い出した。前回は先にLexiconからスクレイピングする部分をつくろうと言ったが、今回もこの路線を継承する。今度はせめてその部分だけでも一気に作ってしまいたい。
前回も載せたように、必要な情報が入っているのはこのへん。
↑はLexiconの適当なページのソースを一部切り出したもの。
ここから、著者情報を取り出したければ
行を取り出して、<>で囲まれているタグ部分を取り除けば良い。
今まではこの行をどう取り出せばよいのか途方にくれていたのだが、ついに解決策を発見した。の部分のように、タイトル
発行日をのぞいて「ほしい情報」のある行には必ずがあるし、逆に他の行にはこの文字列は出てこないというのに気がついた。(foobarには'circle'や'parody'が入る。)なので、まさしく先ほど書いたような正規表現でその行を取得することができる。
また、今度はBeautifulSoupというPythonでWebスクレイピングの定番ライブラリを使うことにした。(PyQueryというのが流行ってきているようだが、他のライブラリと依存関係があるのは面倒なので不採用)HTMLの構造を木として扱うことができるので、かなり戦いやすくなる。実例を示すと、
たったこれだけでさっきの行、しかも最初にくっついている余計な部分なしのものが取れる。
間違えて格納するリストの名前をcircleにしてしまってるのはご愛嬌だが、これで同じ形式で記述されているサークル、著者名、パロディ元は簡単にとることができる。
あ、これはもうすぐできるかも。
そういやなんでWebスクレイピングっていうんでしょうね |