ブログから本文を取得するPHP 11

私用で前に作ったんですが、
今回別のアプリで流用するのでクラスにしたので
ついでに公開します。

//2015/02/18 リンク修正
ダウンロードはこれ
Class.GetTitleAndBody.zip

CSSレイアウトのDIVかテーブルレイアウトのTDで分割して
一番リンク率が低い
設定値よりリンク率が低い
設定値よりタグ率が低い
画像率が一番高い
文字数が規定以上
一番大きいパラグラフ
ここらへんにポイントを割り振ってはじき出してます

なので、ITMEDIAのようにサイドバーがえらく充実してるとことか
<div class=”brclear”>なんてひどいことしてるとことかは
うまくいきませんね。

使い方

こんなかんじです。

$Html = new GetTitleAndBody();
$Html->GetHtml(“http://neoinspire.net”);
if(empty($Html->error)){
  echo $Html->title; //タイトルっぽいもの
  echo $Html->body; //本文っぽいもの
  echo $Html->body_length; //文字数
}else{
  echo $Html->error; //エラー出力
}

本文はbrやa、li,strong など残せそうなのは一応残してあるので、
純粋にテキストにしたいなら strip_tags($Html->body) で。

パラメータとか

コンストラクタのパラメータはこんなかんじです

1:$_body_len=有効にする記事の文字数の下限値(400ならマルチバイトで400文字以上じゃないと無効)
2:$_link_per=有効にするリンクの出現率の上限値(0.1ならリンクが1割以下じゃないと無効)
3:$_tag_per=有効にするHTMLタグの出現率の上限値(0.1ならタグが1割以下じゃないと無効)
4:$_html_point;=この点数を超えないと対象にならない(デフォルト8点)
5:$_weight=設定値の変更(Array)
  $_array[‘キー’]=評価点 の形式
    キーリスト
    max_link_weight;    //リンク率が一番小さい(デフォルト2点)
    link_weight;      //リンクが規定値より低い(デフォルト3点)
    tag_weight;      //タグ率が一番小さい(デフォルト1点)
    max_img_weight;    //画像率が高い(デフォルト1点)
    body_weight;      //文字数規定値より多い(デフォルト1点)
    body_length_weight;   //文字数が全DIVの中で一番多い(デフォルト2点)

第5パラメータは配列で
$array[‘body_weight’]=5
とかすれば
「文字数規定値より多い」という項目のポイントが5になる ってういかんじです。

最後

パラメータ変えなくても割と取れます!

//2015/02/18 リンク修正
ダウンロードはこれ
Class.GetTitleAndBody.zip

11 thoughts on “ブログから本文を取得するPHP

  1. Reply Shin 7月 28,2008 8:50 PM

    本文を抽出する方法を探していて、PHPでは見つからず
    やはり自分で作るしかないか…と思っていたところ
    偶然にもこのページにたどりつき狂喜していたのですが、
    ダウンロード先(http://neoinspire.net/wp-content/uploads/2007/11/classgettitleandbody1.zip)
    が404になっています…
    公開を中止されたのでしょうか?
    もしよろしければ使わせて頂きたいと思っています、よろしくお願いします。

  2. Reply Jakk 7月 29,2008 10:46 AM

    Shinさん 
    コメントありがとうございます。

    URLですが、Wordpressのアップロードの際にファイルを手で移動したので、
    リンクがきれてただけでした。。

    http://neoinspire.net/wp-content/uploads/2007/11/GetTitleAndBody.Class.zip
    ↑これが新しいURLです

    ちなみに精度はあまり期待しないでくださいw
    6~7割取れればいいかと。。

    ではでは。

  3. Reply Shin 7月 29,2008 1:36 PM

    ダウンロードさせていただきました、ありがとうございます。

  4. Reply tomtomjacktom 2月 16,2009 1:34 PM

    ブログから本文を取得するphpソースを探していてたどろちきました。
    ダウンロードさせて頂きます。
    簡単な実験アプリを個人でやるぶんに使用させて頂こうと思っております。
    ご報告までにて・・・。

  5. Reply Jakk 2月 16,2009 6:18 PM

    コメントありがとうございます。

    ダイブ前につくったやつなので、
    上手く動いてるのか不安ですが、
    うまくご期待にそえていれば幸いです。

  6. Reply tomtomjacktom 2月 16,2009 8:19 PM

    ありがとうございます。
    何か簡単なアプリができましたらご報告させていただきます。

  7. Reply yamada 4月 28,2012 7:30 PM

    ウェブサイトの本文を抽出したく
    検索サイトで調べていて辿り着きました。

    WordPressのpluginで使用したい考えているのですが
    Jakk様のこのソースコードのライセンスは何になりますでしょうか?

  8. Reply admin 5月 29,2012 4:56 PM

    >yamadaさん
    コメントありがとうございます。
    該当のソースは著作権表示の必要なしのMITライセンスにしておきます。
    どうぞご自由にお使いください。
    (かなりチューンしないと色々なものは取得できないと思いますが)

  9. Reply Auxo 2月 15,2015 10:27 PM

    ブログキーワード抽出の記事とこちらの記事を楽しく読ませていただきました。非常に興味深い内容でした。記事と合わせて実際に本プログラムに触れてみたいのですが既にソースのリンクが切れているようです。よろしければ再度ソースの配布をお願いできないでしょうか?

  10. Reply Jakk 2月 18,2015 10:19 AM

    コメントありがとうございます。
    ファイルについてはリンクが切れていましたので、
    下記をご参照ください。
    GetTitleAndBody.Class.zip

    ただ正直昔作ったということもあって、精度は低いと思います。
    実用に耐えられない場合が多いと思いますので
    うまくいじって頂ければと思います。
    ライセンスは上のコメントにもありますがMITですので
    好き勝手どうぞ!

  11. Reply Auxo 2月 19,2015 12:56 AM

    さっそくのご返信ありがとうございます。
    まだまだ勉強中のみですが、有効に活用させていただきます。
    今後もよい記事を楽しみにしております。

Leave a Reply