プログラムに関しての質問です。


当方、プログラム初心者ですが、どうしても作ってみたいプログラムがあります。

yahooやgoogleなどのサーチエンジンがありますが、ここの検索ワードに言葉を入れて検索すると1~10位までの検索結果が表示されます。

そこで、ソフト上で言葉を入れるとその言葉に対する1~10位までのindex.htmlを自動的に読み込み、日本語の文章のみを抜き出してきてくれるプログラムが作りたいのです。

こちらが現在使えるのはPerl,PHP,とjavaが少しできます。

なにか、良いアイデアはないでしょうか?

回答の条件
  • 1人10回まで
  • 登録:
  • 終了:2007/02/16 21:05:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:Questy No.1

回答回数35ベストアンサー獲得回数0

ポイント27pt

((なにか、良いアイデアはないでしょうか?))

この文章だと、正直何がやりたいのか、さぱーり

まずは自分のやりたい事を 誰でも判りやすく短く 簡潔に 正確に記載する

これができないと、次のステップのプログラムに落とし込みができないって

師匠がいってました

id:zachouR

すいません、精進いたします。

これでも、なんとかわかりやすくしたつもりなのですが。

2007/02/13 10:22:48
id:o0o0o0o0o No.2

回答回数84ベストアンサー獲得回数0

ポイント27pt

perlでしたら、こちらが参考になります。

http://homepage3.nifty.com/hippo2000/perltips/LWP.html

下記は、そこに載っているサンプルプログラムですが、

少し改造すれば、googleをたたいて結果をテキスト出力することは、わりに簡単だと思います。

# ユーザ・エージェント オブジェクトを作成します

use LWP::UserAgent;

$ua = new LWP::UserAgent;

$ua->agent("AgentName/0.1 " . $ua->agent);

# リクエストを作成します

my $req = new HTTP::Request POST => 'http://www.perl.com/cgi-bin/BugGlimpse';

$req->content_type('application/x-www-form-urlencoded');

$req->content('match=www&errors=0');

# ユーザ・エージェントにリクエストを渡し、返されたレスポンスを取得します

my $res = $ua->request($req);

# レスポンスの結果をチェックします

if ($res->is_success) {

print $res->content;

} else {

print "Bad luck this time\n";

}

id:zachouR

おおおー!!!!!

回答ありがとうございます!

さっそくやってみます!

2007/02/13 10:22:05
id:takfjt No.3

回答回数23ベストアンサー獲得回数3

ポイント26pt

# Perlメインで書きます.

目的を達成するためのおおまかな手順は,

  • HTTPでWebページを取得する.
  • 取得したWebページを解析する.

を繰り返すことになります.


◆サーチエンジンから検索

Perlであれば,以下のページなどが参考になると思います

http://www.geekpage.jp/programming/perl-network/simple-http-clie...


PHPやJavaもだいたい同じようにしてできます.

HTTPをあつかうライブラリもあるでしょうが,

今回の目的であれば,上記URLのようにしたほうが簡単だと思います.

検索結果の解析は,パターンマッチングによって行うことができます.


また,Googleに限って言えば,Google APIがありますので,

それを使う方法もあります.

Perlでは下記のようなライブラリが使えます.

http://search.cpan.org/~bstilwell/Net-Google-1.0.1/

このようにシンプルに検索結果が取得できるようです.

http://search.cpan.org/~bstilwell/Net-Google-1.0.1/lib/Net/Googl...

◆上位10ページの日本語を取得

検索結果からうまくURLを抽出できたら,

上に上げたHTTPクライアント(1つ目のURL)によってページを取得します.

そして,日本語以外の要素を,やはりパターンマッチングで消去します.

ただし,日本語の抽出は非常に難しいです.

具体的には,下記のページを参考にして

http://www.din.or.jp/~ohzaki/perl.htm#JP_Match

日本語を正確に識別して,それ以外を排除しなければなりません.

もし,そうではなく,HTMLタグが邪魔というのであれば,下記ページを参考にして

http://www.din.or.jp/~ohzaki/perl.htm#HTML_Tag

タグ要素を抽出し削除すればよいでしょう.

id:zachouR

細かい点までありがとうございます!

まさにこれです!

たすかりました!

2007/02/13 10:21:27

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません