WEB自動検索のための実装について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
★WEB123

WEB自動検索のための実装について

#1

投稿記事 by ★WEB123 » 9年前

重要な技術と思いますが、やり方を紹介する処はあまりないようです。
やりたいのは、
本来人間が手動操作でやってきたWEB検索動作をプログラムで自動完成する事。
即ち、既存の検索エンジン{yahoo, google}の検索キーワードWEBページを利用して、
文書ファイルで指定している複数のキーワードを次々と検索して行って、
各キーワードによる検査結果ページ(関連のリンク先を青文字列でlisting)を表示する必要なく、
下記の処理をしたいのです。

① 関連のリンク先を青文字列をタイトルとする下の部分(リンク先文書に関する摘要、「スニペット」)を抽出し、
  ファイルに保存

② その中のリンク先のWEBページを遂一に自前のメモリにロードして、
  ロードしてから、そのWEBページの中に指定しているキーワードの数をカウントする。

検索もカウントも、文書ファイルで指定している複数のキーワード別に行います。

このような機能を自動的に行うために、それなりのソフトが必要と思います。
もしそのようなソフトがなければ、自分で開発したいです。
スクリプト言語なり、C++言語なり何でも良いので、方法を教えてくださいませんか。
MSやその他の組織が提供しているAPIがあれば、合わせて教えていただきたいです。

OSは Windows10で、Visual studio 10,13,15

★WEB123

Re: WEB自動検索のための実装について

#2

投稿記事 by ★WEB123 » 9年前

御免なさい、訂正致します
> 即ち、既存の検索エンジン{yahoo, google}の検索キーワードWEBページを利用して、
【正】
即ち、既存の検索エンジン{yahoo, google}の検索キーワードを入力するWEBページを利用して、


>文書ファイルで指定している複数のキーワードを次々と検索して行って、
これは自分のハードディスクに事前作成した複数のキーワードを保存するファイルの事です。

hide

Re: WEB自動検索のための実装について

#3

投稿記事 by hide » 9年前

即ち、既存の検索エンジン{yahoo, google}の検索キーワードを入力するWEBページを利用して、
検索エンジンの"webページ"を利用しなければなりませんか?
検索を行うこと、ではなく検索結果をプログラムに利用することがメインなのであれば、
Google Custom Search API などを利用するべきかと思います。
逆に通常の検索ページでそういった通常以外の利用を行うとつまみ出される可能性もあります。あくまで人間用ですので。

指定されたwebページを取得していくプログラムを、クローラなどと言ったりします。
webページを分解するプログラムをスクレイパと言ったりします。
この辺のキーワードで調べるのがよさそうです。

★WEB123

Re: WEB自動検索のための実装について

#4

投稿記事 by ★WEB123 » 9年前

hide さま

貴重な情報ありがとうございます!

私やりたいのは単に通常人が手動で行うWEB検索活動を自動化したいだけです。

具体に、通常例えば、
yahoo サイト(http://www.yahoo.co.jp/)のホームページを開いて、
「検索」の処にキーワードを入力して、
検索ページが返してきたページを人間の目で見る
この過程において「人間」の処にプログラミングコードに置き換えられたいのです。

そして、このような検索させる行動と検索結果ページを読み取る過程を連続させるために、
複数の検索キーワードを用意し、ファイルに保存しておく。
自動検索する時に、上述のキーワードファイルから、次々とキーワードを読んで投げて検索していく。。。
勿論その都度返してきた検索結果ページ中の各リンク先へのアクセスもプログラムコードによる逐一に行う(手でクリックする場合の機能と同じ)。


Google Custom Search API だと上述目的達成できるのでしょうか。
「Google Custom Search API」に関して少し調べてみましたが、まだ分かってません。

hide

Re: WEB自動検索のための実装について

#5

投稿記事 by hide » 9年前

通常のgoogle検索(https://www.google.co.jp/ ←これ)で考えますと
これを利用して帰ってくるのはブラウザで見やすく整形されたものな訳です。
つまり、検索結果の左上のgoogleのロゴ画像とかも全て入っているものです。
人間の目ではこれらを無視するのは簡単ですが、プログラムではそれを処理しなければなりません。
また、googleの検索結果画面のデザインが変わった場合に、プログラムを修正する必要が出てしまいますよね?
そんなことやってられないので、検索用のAPIを使うわけです。

検索APIを使うとデータを配列(正確にはJSON)で返してくれるので、処理が楽になります。
http://qiita.com/usagi-f/items/ec4b83dd07ac35f47092 の一番下にあるJSONみたいになるかと思います。
Google Custom Search API といったものを利用してできるのは基本的にここまでです。
オフトピック
普通のgoogle検索を利用してもできないわけではないのですが、めんどくさいですし、
規約 (https://www.google.co.jp/intl/ja/polici ... ional.html) に
Google が提供するインターフェースおよび手順以外の方法による本サービスへのアクセスを試みてはなりません。
とあるので、怒られちゃうかもしれません。
逆に言うと、ブラウザの拡張機能ならセーフかもしれませんが、めんどくさいことに変わりはないでしょう。
返してきた検索結果ページ中の各リンク先へのアクセス は自分で実装する必要が有ります。
例えば ruby であれば open-uri (http://docs.ruby-lang.org/ja/2.1.0/libr ... 2duri.html)
で取得するなど。 これを行うようなプログラムをクローラと言います。

★WEB123

Re: WEB自動検索のための実装について

#6

投稿記事 by ★WEB123 » 9年前

hide さま

丁寧なご教授有難うございました。

かなりハードな開発になると感じますが、
さらに調べます。

閉鎖

“C言語何でも質問掲示板” へ戻る