Googleブログ検索結果を読み込む

Googleブログ検索結果を読み込む方法を紹介しています。
当ホームページでは、PHP5を使用しています。PHP5が使用できない環境の方は、こちらのエックスサーバーをご検討下さい。当ホームページでも使用しているおすすめのサーバーです。

Googleブログ検索結果を、自分のサイトに表示する方法です。

Googleブログ検索結果のフィード(Atom)を利用して、ブログ検索結果を表示します。

フィード

Googleブログ検索で実際にキーワードで検索します。検索結果のページの左側に「フィードを取得」という項目があります。そのフィードのURLを確認します。このページでは、Atomについて説明します。

フィードのXML構造を確認する

フィードはXML形式となっています。フィードを表示したブラウザから、ソースを確認してXML構造を確認する必要があります。表示させたい必要な部分をプログラムで抜きだして使用します。(Googleブログ検索結果のAtom)

feed    
title  
id  
id  
link  
updated  
subtitle  
opensearch:totalResults
opensearch:startIndex
opensearch:itemsPerPage
  entry
    id
    title
    link
    content
    author
    name
    uri
    published
    updated

サンプルコード

XML構造が確認できたら、あとはプログラムで抽出するだけです。
googleで検索した結果を読み込んでいます。 サンプルコードの実行結果

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Googleブログ検索結果の読み込みサンプル</title>
<style type="text/css">
<!--
h4 {
	margin: 0px;
	padding: 0px;
	line-height: 200%;
}
p {
	margin: 0px;
	padding: 0px;
	line-height: 150%;
}
.gray {
	color: gray;
}
.green {
	color: #008000;
}
//-->
</style>
</head>
<body>
<?php
$base  = 'http://blogsearch.google.co.jp/blogsearch_feeds?hl=ja&safe=off';
$base .= '&q=google&lr=&um=1&ie=utf-8&num=10&output=atom';
$xml =  simplexml_load_file($base);

foreach($xml->entry as $entry ){
  $title = $entry->title;
  $content = $entry->content;
  $name = $entry->author->name;
  $uri = $entry->author->uri;
  $update = $entry->updated;
  $attrs = $entry->link->attributes();
  $link = $attrs->href;

  $up = strtotime($update);
  $updt = date('Y年m月d日',$up);

print <<< page
<h4><a href="{$link}" target="_blank">{$title}</a></h4>
<p>
  <small class="gray">{$updt} 投稿者 {$name}</small><br>
  {$content}<br>
  <a class="green" href="{$uri}" target="_blank">{$uri}</a>
</p>\n

page;
}
?>
</body>
</html>

サンプルコードの説明(PHP部分のみ)

プログラム 説明
$base = 'http://blogsearch.google.co.jp/blogsearch_feeds?hl=ja&safe=off';
$base .= '&q=google&lr=&um=1&ie=utf-8&num=10&output=atom';
読み込むフィードURLを$baseに代入
$xml = simplexml_load_file($base); 返ってきたXMLを$xmlに代入する。
foreach($xml->entry as $entry ){ entryを変数$entryに代入する。entry分繰り返す。
$title = $entry->title;他 titleを$titleに代入する。content以下同様
$up = strtotime($update);
$updt = date('Y年m月d日',$up);
2008-12-15T14:30:18Z の日時を 2008年12月15日に変換しています。
print <<< page 以下 XMLから抜き出したデータを表示する
ホームページ WEBサービス API PHP プログラミング