Web上に公開されているデータを収集しデータベース化したの自分的まとめ。

とある目的により,Webのあちこちで公開されているデータを収集し,ひとつのデータベース化する作業を行いました。
いやはやしんどかった。
というのも,それらのデータの形式がまちまちで,統一した対処方法が見いだせず,Excelマクロを組んだり何かスクリプトを書くなどの自動化が困難で,したがってかなりの部分を手作業でやらざるを得なかったからです。
まー,これは自分のスキル不足のせいかもしれません。もっとデキる人だったら自動化する手段を見出していたかもしれません・・・
けれども自分なりにがんがったので,備忘録的に書き残しておきます。

  • データがHTMLのテーブル形式で書かれている場合

(1)(IEのみ)HTMLのテーブルのセル内左隅先頭で右クリック→Excelにデータをエクスポートで,テーブル内容が新規Excelファイルに読み込まれる
(2)IEでHTMLを名前を付けてローカルに保存し,拡張子をxlsに変えExcelで開くと強引にデータを読み込める。(1)と違うのは,メルアドやHPのURLがハイパーリンクそのままリンクになっているところ
(3)(2)をやった後,ハイパーリンクURL文字列を取り出したい場合,VBAを使う→http://qiita.com/tukiyo3/items/5a3e91b61815baf20997 セルの値からURLを取得

  • データがpdfで提供されている場合

(1)そのpdfファイルをDLし,Wordで開いてみると,Wordの表形式でデータが拾える→WordからExcelにコピペ*1
(2)しかし,そのpdfファイルが画像である場合は,テキストが拾えず,死亡(爆)
(3)もひとつ,そのpdfファイルが保護されている場合も,死にます。
→ぐぐったら,FireFoxでpdfを開き,印刷→プリンタをAdobe PDFに指定し,印刷実行→名前を付けて保存ダイアログ→保存したものを開いたら保護が解けている・・・が,ただしpdfコンテンツが画像化してしまうので,その後AcrobatPro上でOCR認識したら誤認識交じりに→余計に手間がかかり爆死
(4)フリーのオンラインサービスでpdf保護を外す方法
https://www.freemypdf.com/→pdfファイルをダウンロードして,このサービスにアップロードし,アンロックしたpdfをダウンロード
→その後,AcrobatProからExcelやWordにエクスポート試してみたが,勝手に画像化されたりいまいち
→結局アンロックしたpdfをAcrobat上で全て選択→Excelコピペで済ませた(後でExcel上で整形しないといけないが)

  • データがHTMLのテーブル形式でない場合

→一見表形式のように見えても,定義タグや,divボックスで表示表現されている→仕方ないのでページに表示されているテキストを選択→Excelにぺったぺったひたすらコピペ。手作業つらい。

  • データ(のテキスト)がHTMLソース内に見あたらない,つまりデータベースを連携利用している

→こちらも,仕方ないのでページに表示されているテキストを選択→Excelにコピペ。

  • 一番”鬼”だったケース

ページ上では項目(例:事務所名と氏名)の間にスペースなど区切り文字的なものが入っているように表示されるが,HTMLソース上では<span>タグしか入っておらず,表示されているテキストをコピペすると項目同士がくっついた状態でExcelに貼り付けられるケース。
なおこれは,上述の「定義タグや,divボックスで表示表現されている」ケースと似ているが,「定義タグや,divボックスで表示表現」されている場合,コピペ時に項目間に改行が入った形になるので,随分まし。
→ブラウザでページを表示し,HTMLソースを表示させる→HTMLソースをTepaエディター(後述)に貼り付け,<span>タグを改行(正規表現利用)に置換した上で,HTMLタグを除去,空行を除去し,不要な文字列を削除してExcelにコピペ

  • 全般的に苦労したところ

Excelに取りこんだり,貼り付けたテキストは,1ケース1行の表形式になっておらず,1ケース複数行になっていることが多かったし,1ケース1行になっていた場合にも,氏名等の項目間に区切り(タブやスペース)が入っておらず,1ケース1セルだったりしたので,Excel関数やらなんやらを駆使して1ケース1行&項目分離の表形式になるよう変形。
しかし,そのようにして1ケース1行の表形式にした場合,ケースとケースの間に空行ができてしまうので,その空行を削除するのにTepaエディター(後述)を多用。

上記過程で使ったツール:

  • pdf保護外すサイト

FreeMyPDF.com - Removes passwords from viewable PDFs

  • Tepaエディター

TepaEditor | フリーの Windows用テキストエディター
正規表現を用いた置換
HTMLタグ除去
空行除去 がむっちゃ役に立った。紹介してくれた知人に感謝。

  • 住所から郵便番号を取得するExcelアドイン

https://121ware.com/qasearch/1007/app/servlet/relatedqa?QID=019262
住所に郵便番号がついてないケースが結構あったので・・・

以上のようにして収集し1ケース1行の形式に整形した表は,それぞれExcelの「テーブル」に変換。
最後にそれらのExcel「テーブル」をExcelのクエリ機能で縦結合してひとつの「テーブル」に合併でき,なんとか一仕事できあがりました。

*1:AcrobatProでpdfを開いている場合,Excel形式でエクスポートできるっぽいけど,成績がよろしくなかった。Word側からpdfを開く方が良好。