Posted by : Izumikawa Fukumi 2013年2月28日木曜日

※法律に詳しく無いのですが多分無断で今から紹介する事をやった場合罰せられるかもしれません。やる場合は、個人的に行って下さい。


今回他のサイトの記載情報の一部を取り除き自分のwebページで表示する方法を、
紹介したいと思うのですが今から説明する物は、ライブラリーを使用しているので、
先にダウンロードを済ませて下さい。

http://simplehtmldom.sourceforge.net/

ダウンロードが出来たら、「simple_html_dom.php」が呼び出せる様に、準備して下さいね♪

さてまず今回目標とするサイトは、以下のサイトです。
http://tvanimedouga.blog93.fc2.com/


アニメ好きなら大体の方が知っているサイトですね!
このサイトのアニメ情報を表示しちゃおうと思います。

そして記事内の取得する部分は、「class="mainEntryMore"」です。


このクラスは、全ページ共通のクラスなので、必ず広告下のリンクを表示する事が可能です。
ただこの広告邪魔ですね^^;

広告が邪魔なら見えなくしてしまえばいいのですよw


<style type="text/css">
#a789eba3{
display: none;
}
</style>


これで、広告も見えなくなってスッキリしますね♪

さてまだ説明していませんでしたねw
まず以下の様に書いてみて下さい。


<?php
require_once('simple_html_dom.php');
$html = file_get_html('http://tvanimedouga.blog93.fc2.com/blog-entry-14898.html');
echo $html->find('div[class=mainEntryMore]', 0)->innertext;    
?>


「repuire_once()」は、ライブラリーを読み込む関数です。
最初にダウンロードしたライブラリーを読み込みます。

「$html = 」この変数には、読み込むページのURLを書きます。
最後の('div[class=])には、class=の次にクラス名を書きます。

これで準備は、おk

これを起動するとページの特定の部分が読み込まれると思います。


取得した記事を自分のサイトの物みたいにしたい!!

さて次は、ちょっと複雑?になるかもしれませんが以下の様にする事も可能です。


<?php
$xmlname = 'http://tvanimedouga.blog93.fc2.com/?xml';
$xml = simplexml_load_file($xmlname);
require_once('simple_html_dom.php');
?>
<!DOCTYPE html>
<html lang="ja">
    <head>
        <meta charset="utf-8" />
        <title></title>
        <style type="text/css">
        #a789eba3{
        display: none;
        }
</style>
    </head>
    <body>
<?php
for($i=0; $i < 14; $i++) {
    $link = $xml -> item[$i] -> link;
    $title = $xml -> item[$i] -> title;
    $description = $xml -> item[$i] -> description;
 
$animatxt = <<<TXT
<h2>$title</h2>
<h3>($description)の動画は、以下のリンクへ移動して下さい。</h3>
TXT;
 
    $html = file_get_html($link);
    print $animatxt;
    echo $html->find('div[class=mainEntryMore]', 0)->innertext; 
    print '<br><hr>';
}
?>
    </body>
</html>



今回目標としたサイトは、Blogです。
なのでRSSなどを元に自分のサイトで複数表示してみました。

手順的に、

まずXMLの必要な部分を読み込みます。
重要な物は、$linkです。
この$linkを元に特定の部分を読み込んでいます。

ようするにリンクがあればなんとかなります。


XMLよりもっといっぱい取得したい場合は、以下の様にしたらいいと思います。

for($i=15251; $i < 15755; $i++) {
    $url = 'http://tvanimedouga.blog93.fc2.com/blog-entry-' . $i . '.html';



試した事無いから分かりませんが多分論理的にいけると思います。

以上です。

あとは、取得した記事をHTMLファイルとして保存したりなど自由に出来ますので、
色々試してみて下さい。








- Copyright © I aim to creator. - Hatsune Miku - Powered by Blogger - Designed by Johanes Djogan -