私用で前に作ったんですが、
今回別のアプリで流用するのでクラスにしたので
ついでに公開します。
//2015/02/18 リンク修正
ダウンロードはこれ
Class.GetTitleAndBody.zip
CSSレイアウトのDIVかテーブルレイアウトのTDで分割して
一番リンク率が低い
設定値よりリンク率が低い
設定値よりタグ率が低い
画像率が一番高い
文字数が規定以上
一番大きいパラグラフ
ここらへんにポイントを割り振ってはじき出してます
なので、ITMEDIAのようにサイドバーがえらく充実してるとことか
<div class=”brclear”>なんてひどいことしてるとことかは
うまくいきませんね。
使い方
こんなかんじです。
$Html = new GetTitleAndBody();
$Html->GetHtml(“http://dev.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