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

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

●質問者: catv
●カテゴリ:コンピュータ 趣味・スポーツ
✍キーワード:Google Hatena URL はてな 自動
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● Platanus
●20ポイント

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クライアントとして動作させることができます。

◎質問者からの返答

なるほど。

ありがとうございます。


2 ● ToMmY
●20ポイント

http://www.hatena.ne.jp/

はてな

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();

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

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

◎質問者からの返答

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


3 ● 黒猫
●20ポイント

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”

◎質問者からの返答

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

関連質問


●質問をもっと探す●



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