ここ「はてな」の紹介URLを入れると自動的にそのURL先の<title>○○</title>を取り出していますが、これのやり方はどうやっているのでしょう。Googleなんかだと保存してそうですが、hatenaはその都度表示させていますよね。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/12/29 11:39:05
  • 終了:--

回答(3件)

id:Platanus No.1

Platanus回答回数228ベストアンサー獲得回数42005/12/29 11:57:28

ポイント20pt

http://e-words.jp/w/E382BDE382B1E38383E38388.html

ソケットとは 【socket】 ─ 意味・解説 : IT用語辞典 e-Words

サーバもソケットを使うとPCのブラウザと同じようにWebページを見に行くことができます。


回答を書き込もうとすると、たまになかなかプレビュー画面に切り替わらずに待たされることがあります。そして「このURLは反応がありません」みたいなエラーが表示されることがあります。つまり、回答を書き込む前に、はてなのサーバは回答として記入したURLを読みに行っているわけです。


<title>○○</title>は、その時に取得した内容だと思います。

http://x68000.q-e-d.net/~68user/net/http-1.html

HTTP クライアントを作ってみよう(1)

技術的にはこういうことをするとサーバをHTTPクライアントとして動作させることができます。

id:catv

なるほど。

ありがとうございます。

2005/12/29 13:10:13
id:ToMmY No.2

ToMmY回答回数656ベストアンサー獲得回数192005/12/29 13:05:48

ポイント20pt

Googleはロボットが検索したうえで、データベースを作成しているので、そのロボットがデータとして格納していると思われますが、はてなのばあいは、CGIでHTMLを取得し、<title>と言う場所を検索して、そこに挟まれた文字を出力しているのではないでしょうか。

print”Content-type:text/html¥n¥n”;

use LWP::Simple;

$c=0;

$fdname=”http://www.google.com/”;

$doc = get($fdname);

$find = index ($doc, ’title’, $find );

$i = index ($doc, ’>’, $find );

$i++;

$j = index ($doc, ’<’, $i );

$w=substr($doc,$i,$j-$i);

print ”$w

”;

exit();

こんな感じだと思います。

これだと横文字のページタイトルしか取得できないので、改良してください。

id:catv

具体的なソースまでも。ありがとうございます。

2005/12/29 13:12:10
id:KuroNeko666 No.3

黒猫回答回数144ベストアンサー獲得回数22005/12/29 13:20:01

ポイント20pt

http://www.studyinghttp.net/method#HEAD

[Studying HTTP] HTTP Method

hatenaのシステムに自宅サーバにアクセスさせてみました。

(URLは私の自宅サーバではありません。念のためw)


ログを見てみると、http/1.1で定義されているHEADメソッドを使ってアクセスし、htmlファイルの<head>タグに囲まれた内容を取得してました。


そこから、<title></title>の間に記述された内容を、毎回読み取っているようです。


以下、ログから抜粋…

”HEAD / HTTP/1.1” 200 0 ”-” ”Hatena Pagetitle Agent/1.0”

id:catv

お。確認ありがとうございます。

2005/12/29 15:04:38

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

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません