はてなRSS 取得時

投稿者:

はてなキーワードのRSSを取得する際にXML_RSSやsimplexml_load_fileでは403となり取得できなくなっています。
そのためアクセス元を偽装して取得します。
require_once ‘Zend/Http/Client.php’;
require_once ‘XML/Unserializer.php’;
$url = “http://d.hatena.ne.jp/keywordlist?mode=rss&cname=idol&of=・・・・”;
// IE としてアクセス
$client = new Zend_Http_Client($url);
$client->setConfig(array(
‘maxredirects’ => 5,
‘useragent’ => ‘Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)’,
‘timeout’ => 10,
));
$response = $client->request();
if (!$response->isSuccessful()) continue;
// RSSを取得
$content = $response->getBody();
// RSSを配列に変換
$Unserializer =& new XML_Unserializer();
$Unserializer->setOption(‘parseAttributes’, TRUE);
$status = $Unserializer->unserialize($content);
if (!$status) continue;
$res_array = $Unserializer->getUnserializedData();
// itemリストを取得
$items = $res_array[‘item’];

Thank you for reading this post, don't forget to subscribe!