クローラーを自作する際の注意点

近年はクローラーの作成を独習できる本も沢山出版されていますが、クローラー自作時に問題になる事が多い事をまとめました。

1.クローラーと文字化け

「外国の技術者は一度も文字化けを見た事がない人もいる」と聞いた際にうらやましく思った事がありますが、外国人の方が書いた本やコードは文字化け対応が意識されていなくてハマる事があります。

最近はインターネットも随分洗練されてきたのでインターネットを普通に使っている限りは文字化けに遭遇する事は滅多にないかもしれません。26文字しかないアルファベットと違い、日本語は漢字を含めると膨大な数があるので文字をコンピュータに扱いやすようにするための工夫(コード化)が必要でした。歴史的な理由で文字のコード化、文字コードは複数存在します。代表的な文字コードだけでもutf8、shift jis、euc、jisの4種類があります。例えばutf8で書かれたファイルをeucだと勘違いして開くと文字化けが発生してしまいます。

ブラウザやOSは文字コードを黙って自動で変換してくれるので普通はあまり意識しなくても大丈夫です。しかし、何か少し特殊な事、例えばクローラーしてきたHTMLをファイルに保存してそれを他のサーバーに送る、などを始めると突然文字化けに悩まされる事になります。一旦、ハマると文字コードの仕組みについて沢山調べる事が必要になりますが、文字コードの知識だけではトラブルが解決しないケースもあります。なぜなら、前述のOSによる暗黙の自動変換などが逆に足を引っ張るようになりOS間の挙動の違いなども調べる必要が出てきて深い深い泥沼にハマってしまう事があるのです。

2.学ぶ事はクローラーだけではない

クローラーを作成する際、人によっては新しくプログラミング言語を学ぶ必要が出てくるかと思いますが話はそれだけでは終わりません。スクレイピング、つまり収集したデータから必要部分を抜き出すには正規表現(詳細を解説するために)の知識が必要になります。抜き出したデータを格納するにはデータベースなどのデータ保存手段の知識が必要です。更には格納したデータを使いやすくするためにXMLやJSONなどのデータフォーマットの知識、API化するためにはREST等の仕様を学ぶ必要があるかれません。

場合によってはデータがHTMLではなくPDFやEXCEL、WORD等に格納されているとそれらの特殊ファイルの読み書きについても学習する必要もあるかもしれません。

3.クローラーは一度作ったら終わりではない

クロール先のWebサイトのデザインや構造が変わるとクローラーを修正したり、作り直す必要が出てくるケースがあります。大きくデザインが変わってクローラーがエラーを出す用になるのはまだ幸運な方です。ほんのちょっとデザインが変わってクローラーはエラーにはならなかったけど一部データの取得が出来ていない、事もあり得ます。前回取得データと傾向を比較すればある程度は防げるのですが、例えば、日本全国のデータを集める場合、X町とY市が合併してZ市になった、などは徐々にX町とY市のデータが減っていくのでZ市のデータが漏れている事に長い期間気づけない事などもあります。

4.クローラー対策をしているサイトがある

大規模なサイトは、クローラーによるデータ収集が出来ないようにIPアドレスによる制限をかけてくる場合があります。沢山のクローラーがやってきてデータ収集するのでサーバーの負荷が上がってしまう事を防ぐためですが、負荷をなるべくかけないようにクローラーでデータを取得してもこの制限に引っかかってしまうケースがあります。回避手法は様々なものがありますが、基本はいたちごっこです。

クローラーを作ってみて技術的に行き詰ったり、メンテナンスの大変さに疲れた場合はお気軽にWebBigDataにご相談ください。クローラーの作成から、データ収集、収集したデータの正規化や名寄せ、修正、整備、人口知能が取り扱いかたちへのカスタマイズなど、カスタマイズのご要望にお応えします。

また、クローラーやツールでは対応が難しいデータの取得もご相談ください。例えば、東京23区の町丁目別各年齢別人口などは一部の区はインターネットに公開しておらず、区役所で紙媒体のコピーを貰ってくる必要があります。