• ベストアンサー

RSSデータをMySQLに格納・保存するには?

RSSデータを利用したサイトを制作したいです。 例えば以下のようなサイトです。 ​http://feed.designlinkdatabase.net/​ ​http://affiliate.thumbnailcloud.net/​ ​http://a.guideme.jp/bookmark.php​ 特定のRSSフィードを読み込んで、データベースに格納し、定期的に収集し、それをサイトに表示させるというものです。 この場合、取得したRSSをMySQLにどのように収集し格納すればいいのでしょうか?  また、この場合のロジックと必要な技術などを教えてください。 勉強をしながら制作したいと思っていますので、 お勧めな書籍なども宜しくお願いします。

  • MySQL
  • 回答数1
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.1

RSSはXMLだからXMLを読み込む方法が判れば無問題じゃないのかな http://www.google.com/search?lr=lang_ja&q=rss%20%E4%BB%95%E6%A7%98

関連するQ&A

  • RSSをMySQLに保存することはできますか?

    お世話になります。 いろいろネットで調べてみたのですが分からないことがあり、ご質問させて頂きました。 現在phpでホームページを製作しているのですが、ヘッドラインニュース(Yahoo!やmixiニュースのような)を組み込もうと思っています。 仕組みとしては大手ニュースサイトより定期的にRSSを受信し、それをMySQLに保存し、記事・日時などを指定したページで読み込み、「続きを読む」という形でニュース受信サイトへのリンクを貼るという形です。 ここで2点質問なのですが、他社のニュースをMySQLに格納することに契約などは必要でしょうか? リンク元や記事引用元を掲載すれば問題はないでしょうか? また上記のようにRSSをMySQLに格納する方法についてアドバイスや参考資料などご存知の方が御座いましたらご教授頂けたら嬉しい限りです。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • MySQLにデータを格納する際に文字が化ける

    インターネットでサイトを開いている者です。 ネットのデータをMySQLに格納しようと試みてみましたが、MySQLにデータを格納すると全角データが化けてしまします。MySQLにデータを格納する前は確かに化けていないのですが、MySQLにデータを格納し、中身を確認してみると全部、文字が化けてしまっています。 どうか心当たりの情報をお持ちの方は教えて頂けないでしょうか? お願いします。

  • 他サイトのRSSフィードを指定した「キーワードが含まれるフィードのみ」

    他サイトのRSSフィードを指定した「キーワードが含まれるフィードのみ」wordpress(ワードプレス)に表示させたいと考えております。 ネットで調べてみたところ、http://www.moondakota.com/feed/index_s.php(RSS FeedをJavascriptでウェブページに表示 (ベータ版))という素晴らしいサイトを見つけたのですが、残念ながら「指定したキーワードが含まれるフィードのみ」には対応していないようでした。 wordpressの記事やページにて表示させたいと考えておりますので、javascriptでなくてもOKなのですが、有料・無料は問いませんので、そのようなプログラムやプラグインを、教えて下さい。

  • RSSについて教えてください

    IEのver.7が配布されてから、簡単にフィード用のフォルダに好きなブログをブックマークすることができるようになって、RSSが私にも使えるようになりました。 今まではRSSって便利そうだなとは思っていても、使い方が全くわからなかったのですが、今ではたくさんのブログを全部チェックしなくても、更新されたものがだけを見ればよくなったので、時間が節約できてとてもうれしいです。 でも、同時にとても疑問に思いはじめたことがあります。 (1)今までフィード機能のないIEしかなかった期間、RSSを使っていた人たちはどうやって、RSS機能を使っていたのですか? (2)RSSでブログを購読した場合、ブログを書いている人に購読者の情報はどの程度わかってしまうのですか? (3)IE ver.7の場合ですが、フィード機能は、ブログが更新されたかをいつチェックしているのですか?お気に入りセンターでフィードを開くたびに巡回するのでしょうか? 素人なので質問の仕方がおかしいかもしれないのですが、詳しい方がいたら、ぜひ教えてください。

  • RSSの登録について教えてください。

    私は最近、趣味でライブドアブログをやりはじめたので、アクセスアップのためアンテナサイトなるものに登録しようと思ったのですが、問題が生じました。 当サービスのリンクとブログ用RSSを貴ブログに必ず設置して下さい と注意書きがありました。 リンクはわかったのですが、貼り付けるためのブログ用RSSというのがよくわかりません。 一応、ブログ用RSSページなるものがあり、押してみると おいおい! 総合 RSS 頻繁に更新されるコンテンツを含むフィードを表示しています。 フィードを受信登録すると、そのフィードは Common Feed List に追加されます。フィードからの更新情報は自動的にコンピューターにダウンロードされて、Internet Explorer や他のプログラムで表示することができます。フィードについての詳細を表示します という表示されたページに飛びます。 この時、ブログ用RSSとは、このページ自体のURLのことをいってるのでしょうか? それとも、フィード登録ボタンなるものを押せばURLがでてくるのでしょうか? または根本的に違うのでしょうか? 質問が変ですが、よろしくお願いいたします。

  • RSSの格納、表示がうまくいかない

    データベースへの接続は完了したんですが、RSSの格納がうまくいきません。 エラー文も表示されず原因がわからないのですが、おかしな文はありますでしょうか? <?php require_once(dirname(dirname(dirname(dirname( __FILE__ )))) . '/wp-load.php' ); //ファイルの先頭で読み込む try { $dsn = 'mysql:dbname=hlxclitx_wp1;host=localhost'; $user = 'hlxclitx_wp1'; $password = 'E.HrypHWxNmltXgC5eS26'; $dbh = new PDO($dsn,$user,$password); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);//エラーが発生した時に、例外を投げる echo "データベースへの接続が出来ました"; }catch (PDOException $e) { echo $e->getMessage();// err時はメッセージを表示 exit; } $url1 = [ 'http://blog.livedoor.jp/dqnplus/index.rdf', 'http://alfalfalfa.com/index.rdf', 'http://himasoku.com/index.rdf',]; //itemを取り出して$rssに渡す $date = $rss->channel->date; // RSSアイテム取得 値の代入 自作関数 //SQL文を実行、結果を求める $stmt = $dbh->prepare('insert into hlxclitx_feed_rss (data) values (?)'); //$url1配列から先頭のデータをとりだして$urlに渡す なくなるまでループする foreach ($url1 as $url) { //rssがほしいから、もらった$urlを渡す if (($rss = @simplexml_load_file($url)) === false) continue; // RSSタイトルがほしいから、もらったrssを渡す $site_title = $rss->channel->title; //初期のカウント $count = 0; //itemを取り出して$rssに渡す ループ foreach ($rss->item as $item) { //8件を超えたとき取得を終了する if (++$count > 8) break; //タイトル、リンクを取得 $title = $item->title; $link = $item->link; //RSSの情報を取得 $dc = $item->children('http://purl.org/dc/elements/1.1/'); //RSS日付け取得 $date = date('Y-m-d H:i:s', strtotime($dc->date)); // $title, $link, $date を表示 $stmt->execute[json_encode($item)]; } } ?> 補足情報(FW/ツールのバージョンなど) db name hlxclitx_wp1 table name hlxclitx_feed_rss テーブル名 (data) 名前 item

    • ベストアンサー
    • PHP
  • FirefoxでRSSアイコンがページ上にないのにRSS対応しているRSSフィードをサンダーバードで購読したい

    こんにちは。 Firefox2.0.0.1、およびTunderbirdバージョン2 beta2を使っています。 RSSはすべてTunderbirdで購読しています。 で、表題のとおりですが、 FirefoxでRSSアイコンがページ上にないのに、 RSS対応している(URLのバーの右端にRSSのアイコンが表示されるので分かります)サイトがあります。 この場合、どうやってThunbirdに登録するのが一番ラクなのでしょうか? 自分・・・ (1)「URLのバーの右端にRSSのアイコン」をダブルクリック    ⇒ライブブックマークが追加される (2)ブックマークメニュー(orブックマークツールバー)で、    そのライブブックマークにポイントをあわせる (3)ミギクリックしてプロパティを選択    ⇒RSS フィードの欄にRSSのxmlのアドレスが書いてある (4)それをコピー (5)サンダーバードに切り替え、どっかのフォルダをミギクリックし、    購読を選択・・・あとは通常の手順だと思います。 ・・・と、こんな手順をとっているのですが、 どうも、手間がかかりすぎなきがします。 もっとラクな方法やアドインはあるのでしょうか? もしご存じでしたら、おしえていただければ幸いです。 RSSフィードをサンダーバードで購読したい

  • ■RSSリーダーに登録されたとき、タイトル先頭にアイコンを表示させたい。

    みなさんいつもお世話になります。 質問なのですが、よく、あるサイトをブックマークしたらブックマーク名の先頭にアイコンが表示されていることがあります、サイト管理者の方が.ico?などのアイコンファイルをアップロードしているからだと思うので、それはわかるのですが、同じようにブログなどのRSSフィードをRSSリーダーなどに登録して読んでもらう際に、フィードタイトル先頭、または記事タイトル先頭にアイコンを付けることは可能でしょうか? BloglinesなどでRSSを読んでいると、いくつかのサイトでそのようにアイコンが表示されていました。 自分のサイトがRSSリーダーに登録された場合もそういう風に見せたいと思います。 なにか方法がございますでしょうか? よろしくお願いします。

  • データベース(MySQL)にNULLとして格納

    下記サイトを参考にサイト上からデータベース(MySQL)のテーブルにレコードを追加できるようにしました。 http://ponk.jp/php/basic/php_mysql#page_index3 レコードの追加自体はできたのですが、テキストフィールドに何も記述されていない場合にNULLとして追加したいと思っているのですが、その方法が分かりません。 コードは次のようにしました。 $number = isset($_POST["number"]) ? $_POST["number"] : 'NULL'; $st = $pdo->prepare("INSERT INTO player(number) VALUES(?)"); $st->execute(array($number)); このコードで追加をすると、NULLではなく空白が格納されてしまいます。 どこを修正すればNULLとして格納できるようになるでしょうか? ご存知の方いらっしゃいましたらご教示ください。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • RSSをMYSQLに入れる最適なコードがわからない

    テーブル接続→テーブル作成(必要か不明)→RSSをまとめる→RSSを取得→RSSをテーブルに入れる→RSSを表示をPHPで作成しているのですが、 RSSをテーブルに入れる最適なコードがわからず困っております。 insertを使用してRSSをテーブルに入れたいのですが、INSERT INTOはphpにいきなり書いてもエラーにならないのでしょうか?$を使用するほうの記載のほうが正しいのでしょうか? <?php require_once(dirname(dirname(dirname(dirname( __FILE__ )))) . '/wp-load.php' ); //ファイルの先頭で読み込む try { $dsn = 'mysql:dbname=ozvutmpq_wp1;host=localhost'; $user = 'ozvutmpq_wp1'; $password = 'Rn_&Zi$gWKae'; $dbh = new PDO($dsn,$user,$pass); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);//エラーが発生した時に、例外を投げる echo "データベースへの接続が出来ました"; }catch (PDOException $e) { echo $e->getMessage();// err時はメッセージを表示 exit; } //RSSをまとめる $url1 = [ 'http://', 'http://', 'http://',];//フィード登録1次元配列に foreach ($url1 as $url) { //複数のRSSを読み込むには?A.RSSのURLを配列に入れ、その配列をsimplexmlの引数にします。 $count = 0;//初期のカウント //RSSを取得 $rss = simplexml_load_file("$url"); // simplexml_load_file()でRSSをパース解析してオブジェクトを取得します。 $site_title = $rss->channel->title; // RSSタイトル取得 値の代入 自作関数 $post_thumbnail= $rss->channel->thumb; // RSSサムネイル画像取得 値の代入 自作関数 foreach ($rss->item as $item) { // この内側で $item を参照する if ($count >= 8) { break;//8件を超えたとき取得を終了する } $count++; $title = $item->title; // タイトル $link = $item->link; // リンク $thumb = $item->thumb->url; // アイキャッチサムネイル $content = $item ->description;// 詳細、必要なのか不明 date_default_timezone_set("Asia/Tokyo");//日時、タイトルとサムネイル画像だけほしいので要らない気がする $dc = $item ->children('http://purl.org/dc/elements/1.1/');//RSSの情報をPHPで取得するとき、[simplexml_load_file()]関数を使いますが、読み込むファイルの形式が[RSS 1.0]の場合、特殊な処理を施してあげないと正確に取得・表示することができません。 $day = date('Y/m/d H:i',strtotime($dc -> date));// RSS日付け取得 値の代入 自作関数 RSS1.0を取得したい場合「dc」の名前空間は「xmlns:dc="http://purl.org/dc/elements/1.1/"」 と定義されているので、これを引数として指定します。 $key = date('YmdGHis', strtotime($dc -> date));//DB等に入れやすい書式に変換 } } //RSSをテーブルに入れる INSERT INTO rssfeed (title, link, thumb,content)//テーブル名 VALUES ($title, $link,$thumb,$content now()) ON DUPLICATE KEY UPDATE up_date = now(); //名前を独自につける $item_insert_sql = "INSERT INTO $db_database.`rssfeed`(title, link, thumb, content) VALUES ('" . $title . "', '" . $link . "', '" . $thumb . "', '" . $content . "')";//mysql_queryとしてまとめてコードとして使うため?

    • ベストアンサー
    • MySQL