私用で前に作ったんですが、
今回別のアプリで流用するのでクラスにしたので
ついでに公開します。
//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
本文を抽出する方法を探していて、PHPでは見つからず
やはり自分で作るしかないか…と思っていたところ
偶然にもこのページにたどりつき狂喜していたのですが、
ダウンロード先(http://dev.neoinspire.net/wp-content/uploads/2007/11/classgettitleandbody1.zip)
が404になっています…
公開を中止されたのでしょうか?
もしよろしければ使わせて頂きたいと思っています、よろしくお願いします。
Shinさん
コメントありがとうございます。
URLですが、Wordpressのアップロードの際にファイルを手で移動したので、
リンクがきれてただけでした。。
http://dev.neoinspire.net/wp-content/uploads/2007/11/GetTitleAndBody.Class.zip
↑これが新しいURLです
ちなみに精度はあまり期待しないでくださいw
6~7割取れればいいかと。。
ではでは。
ダウンロードさせていただきました、ありがとうございます。
ブログから本文を取得するphpソースを探していてたどろちきました。
ダウンロードさせて頂きます。
簡単な実験アプリを個人でやるぶんに使用させて頂こうと思っております。
ご報告までにて・・・。
コメントありがとうございます。
ダイブ前につくったやつなので、
上手く動いてるのか不安ですが、
うまくご期待にそえていれば幸いです。
ありがとうございます。
何か簡単なアプリができましたらご報告させていただきます。
ウェブサイトの本文を抽出したく
検索サイトで調べていて辿り着きました。
WordPressのpluginで使用したい考えているのですが
Jakk様のこのソースコードのライセンスは何になりますでしょうか?
>yamadaさん
コメントありがとうございます。
該当のソースは著作権表示の必要なしのMITライセンスにしておきます。
どうぞご自由にお使いください。
(かなりチューンしないと色々なものは取得できないと思いますが)
ブログキーワード抽出の記事とこちらの記事を楽しく読ませていただきました。非常に興味深い内容でした。記事と合わせて実際に本プログラムに触れてみたいのですが既にソースのリンクが切れているようです。よろしければ再度ソースの配布をお願いできないでしょうか?
コメントありがとうございます。
ファイルについてはリンクが切れていましたので、
下記をご参照ください。
GetTitleAndBody.Class.zip
ただ正直昔作ったということもあって、精度は低いと思います。
実用に耐えられない場合が多いと思いますので
うまくいじって頂ければと思います。
ライセンスは上のコメントにもありますがMITですので
好き勝手どうぞ!
さっそくのご返信ありがとうございます。
まだまだ勉強中のみですが、有効に活用させていただきます。
今後もよい記事を楽しみにしております。