SEO対策のための超巨大サイト構築
久しぶりに時間があるので,ちょっと最近,思いついたことを実行してみました.
seo対策の一環なのですが.
ページ数が膨大な巨大サイトになると,上位に表示されやすいというものなのですが.
そのために,何もしなくても自動的にページを増やす仕組みを作らなければならないわけです.
というわけで,作ってみました.
巨大サイトを作るための案としていくつかあるのですが,一番簡単そうなものを作りました.
yahooのブログ検索にはrssがあります.
http://blog-search.yahoo.co.jp/search?p=%E3%83%8D%E3%83%83%E3%83%88%E3%83%A9%E3%82%B8%E3%82%AA&ei=UTF-8
このページの右上のオレンジ色のボタン
http://blog-search.yahoo.co.jp/rss?p=%E3%83%8D%E3%83%83%E3%83%88%E3%83%A9%E3%82%B8%E3%82%AA&sq=M&ei=UTF-8&so=dd
で,これを定期的に読みに行って,データベースにいれて,それをどんどん蓄えて,それで表示するっていう仕組みなわけです.
ブログなので,かくひとがいれば,自動的にどんどんページが集まるわけです.
で,これを表示させればいいのですが.
まあ,PHPでつくりました.
ini_set('include_path', '/php/includes:/usr/share/pear');
require_once("XML/RSS.php");
require_once("データベースコネクトをするだけのphpファイル");
$rss_url[]="http://blog-search.yahoo.co.jp/rss?p=%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%83%A9%E3%82%B8%E3%82%AA&sq=M&ei=UTF-8&so=dd";
$rss_url[]="http://blog-search.yahoo.co.jp/rss?p=%E3%83%8D%E3%83%83%E3%83%88%E3%83%A9%E3%82%B8%E3%82%AA&sq=M&ei=UTF-8&so=dd";
foreach($rss_url as $url){
$rss =& new XML_RSS($url);
$rss->parse();
foreach ($rss->getItems() as $item) {
$title =$item['title'];
$description =$item['description'];
$link =$item['redirector:origlink'];
$sql_str="select * from netradio where link='".$link."'";
$result=mysql_query($sql_str,$connect_id);
$row=mysql_fetch_array($result);
if($row ==null){
$sql_str = "insert into netradio(title,link,description,pubDate)values('".$title."','".$link."','".$description."','".$item['pubdate']."')";
$result=mysql_query($sql_str,$connect_id);
}
}
}
?>
ついでに,
pearのxml_rssでそのまま読むと,linkがyahooを通して読むことになってしまいます.
なので,
/**
* @var array
*/
var $itemTags = array('TITLE', 'LINK', 'DESCRIPTION', 'PUBDATE','REDIRECTOR:ORIGLINK');
最後の
,'REDIRECTOR:ORIGLINK'
を追加しておきます.
まあ,本当はクラスを継承してyshooのrss専用のクラスを作るべきなんだと思いますが,メンドクサイので付け加えました.
みればわかると思いますがlinkが同じだと登録しないようにしているわけです.
まあ,これで以上です.
ついでに,これは僕の家のサーバーのほうに設置しました.
ああ,前提としてこれは,うちのサークルのwebページのSEO対策です.
ただ,さくらのサーバーを借りているので,cronを沢山回せないです.
というわけで,うちのサーバーに保存しておく.
そんでもって,APIみたいな感じのものをつくっておく.
読み出しは.
http://kai-hiro.ddo.jp/radio_info/getInfo.php?page=1
今は単純にこういう感じになっています.
認証とかもありません.
page=
の値を増やせば次のページに行く仕組みで.
本来ならばJSONで値が帰ってくるようにしているのですが,今のところ,表示のためにJSONエンコード・デコードをして今の感じになっています.
require_once('JSON.php');
require_once("データベースコネクトをするだけのphpファイル");
$page=$_GET['page'];
if($page==null){
$page=1;
}
$start = ($page-1)*10;
$end = $page*10;
$sql_str="select * from netradio order by id desc limit ".$start.",".$end;
$result=mysql_query($sql_str,$connect_id);
while($row=mysql_fetch_array($result)){
$data[]=$row;
}
$json = new Services_JSON();
$obj = $data;
$js =$json->encode($obj);
print_r($json->decode($js));
?>
まあ,こんな感じです.
ついでに
$json = new Services_JSON();
はpearなのかな?
なんか,まだ正式じゃないみたいで,wgetでどっかからかもってきてpearのディレクトリにいれただけです.
課題.
リンクが同じだと登録しないっていうところをもっとうまく書けるんだと思う.
てか,mysqlでカラムをユニークとかにすればいいとかあるのかな?
rssを信頼しきっているので,yahooがsqlインジェクションとかをやってきたときに死ぬ(笑
pubDateがてきとー
DBの型がtext(笑
datetimeにしたいけど,そのまま入るのかな?
というわけで,その辺を完成させて
認証機能をつけてしまえば,完成かな.
つっこみよろしく.
seo対策の一環なのですが.
ページ数が膨大な巨大サイトになると,上位に表示されやすいというものなのですが.
そのために,何もしなくても自動的にページを増やす仕組みを作らなければならないわけです.
というわけで,作ってみました.
巨大サイトを作るための案としていくつかあるのですが,一番簡単そうなものを作りました.
yahooのブログ検索にはrssがあります.
http://blog-search.yahoo.co.jp/search?p=%E3%83%8D%E3%83%83%E3%83%88%E3%83%A9%E3%82%B8%E3%82%AA&ei=UTF-8
このページの右上のオレンジ色のボタン
http://blog-search.yahoo.co.jp/rss?p=%E3%83%8D%E3%83%83%E3%83%88%E3%83%A9%E3%82%B8%E3%82%AA&sq=M&ei=UTF-8&so=dd
で,これを定期的に読みに行って,データベースにいれて,それをどんどん蓄えて,それで表示するっていう仕組みなわけです.
ブログなので,かくひとがいれば,自動的にどんどんページが集まるわけです.
で,これを表示させればいいのですが.
まあ,PHPでつくりました.
ini_set('include_path', '/php/includes:/usr/share/pear');
require_once("XML/RSS.php");
require_once("データベースコネクトをするだけのphpファイル");
$rss_url[]="http://blog-search.yahoo.co.jp/rss?p=%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%83%A9%E3%82%B8%E3%82%AA&sq=M&ei=UTF-8&so=dd";
$rss_url[]="http://blog-search.yahoo.co.jp/rss?p=%E3%83%8D%E3%83%83%E3%83%88%E3%83%A9%E3%82%B8%E3%82%AA&sq=M&ei=UTF-8&so=dd";
foreach($rss_url as $url){
$rss =& new XML_RSS($url);
$rss->parse();
foreach ($rss->getItems() as $item) {
$title =$item['title'];
$description =$item['description'];
$link =$item['redirector:origlink'];
$sql_str="select * from netradio where link='".$link."'";
$result=mysql_query($sql_str,$connect_id);
$row=mysql_fetch_array($result);
if($row ==null){
$sql_str = "insert into netradio(title,link,description,pubDate)values('".$title."','".$link."','".$description."','".$item['pubdate']."')";
$result=mysql_query($sql_str,$connect_id);
}
}
}
?>
ついでに,
pearのxml_rssでそのまま読むと,linkがyahooを通して読むことになってしまいます.
なので,
/**
* @var array
*/
var $itemTags = array('TITLE', 'LINK', 'DESCRIPTION', 'PUBDATE','REDIRECTOR:ORIGLINK');
最後の
,'REDIRECTOR:ORIGLINK'
を追加しておきます.
まあ,本当はクラスを継承してyshooのrss専用のクラスを作るべきなんだと思いますが,メンドクサイので付け加えました.
みればわかると思いますがlinkが同じだと登録しないようにしているわけです.
まあ,これで以上です.
ついでに,これは僕の家のサーバーのほうに設置しました.
ああ,前提としてこれは,うちのサークルのwebページのSEO対策です.
ただ,さくらのサーバーを借りているので,cronを沢山回せないです.
というわけで,うちのサーバーに保存しておく.
そんでもって,APIみたいな感じのものをつくっておく.
読み出しは.
http://kai-hiro.ddo.jp/radio_info/getInfo.php?page=1
今は単純にこういう感じになっています.
認証とかもありません.
page=
の値を増やせば次のページに行く仕組みで.
本来ならばJSONで値が帰ってくるようにしているのですが,今のところ,表示のためにJSONエンコード・デコードをして今の感じになっています.
require_once('JSON.php');
require_once("データベースコネクトをするだけのphpファイル");
$page=$_GET['page'];
if($page==null){
$page=1;
}
$start = ($page-1)*10;
$end = $page*10;
$sql_str="select * from netradio order by id desc limit ".$start.",".$end;
$result=mysql_query($sql_str,$connect_id);
while($row=mysql_fetch_array($result)){
$data[]=$row;
}
$json = new Services_JSON();
$obj = $data;
$js =$json->encode($obj);
print_r($json->decode($js));
?>
まあ,こんな感じです.
ついでに
$json = new Services_JSON();
はpearなのかな?
なんか,まだ正式じゃないみたいで,wgetでどっかからかもってきてpearのディレクトリにいれただけです.
課題.
リンクが同じだと登録しないっていうところをもっとうまく書けるんだと思う.
てか,mysqlでカラムをユニークとかにすればいいとかあるのかな?
rssを信頼しきっているので,yahooがsqlインジェクションとかをやってきたときに死ぬ(笑
pubDateがてきとー
DBの型がtext(笑
datetimeにしたいけど,そのまま入るのかな?
というわけで,その辺を完成させて
認証機能をつけてしまえば,完成かな.
つっこみよろしく.
- [2008/04/29 16:50]
- 未分類 |
- トラックバック(0) |
- コメント(0) |
- この記事のURL |
- TOP ▲
トラックバック
この記事のトラックバックURL
http://kunitachi2.blog21.fc2.com/tb.php/1778-130c9374
- | HOME |
