人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

とあるデータベース系ウェブサイトから、
研究目的でデータの使用を許可されました。
ただCSV等のデータの形では提供されず、
勝手にサイトから落とす(要はこぴぺ)ように言われました。

ただかなり大規模なデータになるので、
クローラを作ろうと思っているのですが、
一番早い言語・方法を教えてください。

※EXCEL VBAと正規表現を使ったプログラムでは、よくページのロードが長くかかった時につっかえてしまって大変でした。

よろしくお願いいたします。

●質問者: Hajimex
●カテゴリ:コンピュータ インターネット
✍キーワード:CSV Excel VBA とある ウェブサイト
○ 状態 :終了
└ 回答数 : 8/8件

▽最新の回答へ

1 ● Silvanus
●20ポイント

クローラそのものを自作しなければどうしても持って来られないデータ…

という訳ではないんですよね?GETHTMLWは試されましたか?

http://www.vector.co.jp/soft/win95/net/se077067.html

◎質問者からの返答

なるほどこちらはHPを丸ごとDLするソフトウェアですね。

ほしいデータがあるサイトは、テーブル形式でデータが記述されています。

私はこれをエクセルかCSVの形でほしいと思っています。

すみません、説明が足りませんでした。


2 ● dev_zer0
●20ポイント

ええと、あなたの得意なプログラミング言語、OSが分からないので私だったらという回答になります

また、質問も微妙に曖昧なのでそれも考慮に入れてみます。

# コメントが開いていればまずそれを聞きたかったのですが、開いてない...


まず、前提条件として出力結果はCSV, 正規表現をサポートしている言語を

期待していると想定します。

> 勝手にサイトから落とす(要はこぴぺ)ように言われました。

というのは

1. 直接DBを検索できず、HTMLが返される

2. 直接DBを検索できる

ことで大きく異なってきます。

HTMLが返される場合、どうにかしてHTMLをDOM/SAXに変換する必要が出てきます

直接DBを検索できる場合、SQLさえ知っていればどうにでもできます。


次に

> 一番早い言語・方法を教えてください。

これは

1. 処理速度が速い

2. そのプログラム言語が比較的シンプルで覚えやすい

という解釈ができます。


ぶっちゃけ処理速度が速く開発環境が整備されている言語は私はJavaだと思います。

# C/C++は正規表現がアレなので...


また、コンパイル言語よりも多少処理速度が遅いけれど

try&errorで何度もデバッグができる言語は

Perl or PHPだと思います。(実は最近のPHPって良く分かってないけれど)


どれもDB接続&操作、DOM/SAX、CSV出力、正規表現には問題ない言語だと思います。

なお、EXCELは確かExcel2007以前は65536行のデータしか扱えないので

大量のデータの取り扱いは不便です。(6万件程度のデータならいいかもしれませんが)


ということで結論としては

・Java

・Perl

・PHP

ということになります。

上記の言語を知っていたら、その言語を使うことが無難でしょう。

少なくとも6万件を超えるような大量データは古いEXCELでは無理です。

また、6万件を超えるようなCSVは古いEXCELでは表示すらされません。

となると、自分でもDBを持つ必要があるかもしれませんね...

◎質問者からの返答

いろいろ記入していなくて申し訳ありません。

そうなんです、HTMLで返されます。

それぞれの長所短所を教えて頂きありがとうございました。

JAVAが早いんですね、

PHPはかじったことがあるのでその2つから選ぶことになりそうです。

ありがとうございます。


3 ● deflation
●20ポイント

わざわざクローラーをつくる必要はありませんし、下手にクローラーを作ると逮捕されるようですので(Librahack事件)、既成ソフトの組み合わせで対応するのが無難かと思います。


Irvineフリー版で目的のHTMLファイルをダウンロードし、HC95を使ってCSV形式に変換してはいかがでしょう。


4 ● online_p
●20ポイント

wgetで落として、それをsedでexcel型に書き換えですね。


5 ● a-kuma3
●20ポイント

こういった質問が出るということは、スクリプト系の言語が苦手ってことですよね。

ページのダウンロードと、HTML のテーブルからデータを抽出するのを分けたらどうですか?

データをごっそり落とすのは、ダウンロード系のツールで。

ローカルのファイルとして落としたファイルからデータを抽出するのは VBA で。

◎質問者からの返答

なるほど。

ありがとうございます。

そのとおりスクリプト系は苦手です。


1-5件表示/8件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ