質問: 例えば古本の価格を一気に検索できるようなシステムを作るにはどんな技術を学べば良いでしょうか。イメージとしては価格と販売しているサイトが降順でざっと表示されるようなものです。デザインは凝ったものである必要はありません。ISBNだけでなく、タイトルや著者などテキストでも検索が可能なものが作りたいです。と私はHTMLとSQLを仕事の関係で少し使ったことがあるくらいの非プログラマですので、そのあたりを汲んで教えて頂けると大変ありがたいです。
回答: deep_oneさんがコメント欄で指摘されている通り、技術うんぬんよりも、それ以前の(設計やビジネスモデルの)問題が大きいように思います。 まず考えないといけないのは、データをどう管理するかの問題です。 > ISBNだけでなく、タイトルや著者などテキストでも検索が可能なものが作りたいです。 > > との事ですが、ISBNを元にタイトルや著者といった情報を引き出せるサービスは幾つか存在します。ただし、 上記を見れば分かるとおり、送られてくるのはデータベースの生データです。利用するためにはこれを必要に応じて加工しないといけません(コメントで「パース」と呼ばれている処理の事、wikipedia:構文解析)。 それでもISBNでの検索に限れば、対応するデータが1つしか存在しませんから処理も単純で済むのですが、タイトルや著者で検索した場合は複数のデータが送られてくる事になると思いますので、それらをどのように処理するのかも考えておかないといけません。ただし、借り物でできる処理はせいぜいここまでが限度です。いくら外部のデータベースを頼っても、肝心の価格データはそこには存在しません。 価格データはどこから参照する予定でしょう?。古本屋のサイトから無断で拝借するのでしょうか?。であるならば、データの取得頻度はどれくらい?。あまり頻繁にアクセスするようだとサーバに過度の負荷がかかって相手サイトの迷惑になります。誰しもがそのようなデータ抽出のためにアクセスされる事を目的としてサイトを公開しているわけではないのですから。 価格データを検索するタイプのものは、価格.comというよく知られたサービスがある事を質問者さんもご存知だと思うのですが、FAQによると(案の定というか)どうやら店舗の側に入力させるスタイルを採用しているようです。 > 価格.comは様々なお店の価格情報を登録する事ができる「広告の場」だとお考えください。 > > つまり価格データは店舗が勝手に登録してくれるというビジネスモデルがすでに機能しているようでして、データ取得に関しては誰に迷惑をかけるわけでもなく、軌道に乗った運営が行えているようです。 そこでまず、価格.comの真似をする場合で考えます。価格データは古本屋さんに登録してもらうとしましょう。でもちょっと待ってください、果たして本当に(わざわざ)登録してくれるのでしょうか?。制作したサイトに(わざわざ)登録したいと思わせるだけの魅力があるでしょうか?。魅力がなければシステムの完成度がどんなに高かろうとも企画は絵に描いた餅で終わってしまいます。 それはちょっと無理がありそうなので、価格データはデータベース化せず、(相手にとっては傍迷惑な話なのですが)あくまで古本屋サイトに直接アクセスして最新データを取得してくる事も考慮しましょうか。その場合ですと、普通はサイトごとに設計(データの掲載場所)が異なりますので、それぞれのサイトの設計に合わせたオーダメイドなプログラミングが必要になってきます。参照するサイトが2店舗なら2種類のプログラムを、3店舗なら3種類、4店舗なら4種類...という具合にです。相手がアメリカ人だったら英語で対応し、中国人だったら中国語で対応するのと一緒です。こちらの都合で無理やり相手に接触しているわけですから、全て相手側の設計に合わせる必要が生じるのです。しかも勝手に利用している手前、リンク切れなどが発生しても相手からの報告は全く期待できず、メンテナンスの手間もかかります。そのメンテナンスをすら手抜きするようだと、せっかく定着してくれた利用者がいたとしてもすぐに離れていってしまうでしょう。どう考えてもまともな運営ができるとは思えません。 あと、そうしたサイトを運営するには、データを保管し、データベースを動かすためのサーバをレンタルしなければなりませんので、毎月の維持費がかかります。サーバを管理する能力も必要です。「サーバが外部からのアタックを受けてます、でも対処法が分かりません」では目も当てられませんので^^;。全てを自分だけでやろうとするのは最初から土台無理な話なので、本格的にやるならば人を雇いましょう(※)。価格.comの場合、たぶんページ内に張られた広告からの収入のみでそれらを賄って(さらに利潤を生み出して)います。 とまあ、こういうのがビジネスモデルの問題というわけ。 ※ あれ?、だったら技術なんて学ぶ必要ないんじゃね?。