ちゃだろぐ

computing

< 2012-05 >
  12345
6789101112
13141516171819
20212223242526
2728293031  
Powered by Nucleus CMS
Total1725157 7days2568 Yesterday368 Today312
Since 2004-07-11

All

自動巡回でダウンロードしたhtmlファイルの中には、目的の記事以外のメニューやリンク、画像や広告がたくさん入っている。これら不要なものを除き、記事の部分だけを取り出したい。

前提条件

  • ダウンロードされたファイルは複数あり、その拡張子は php (例えば012954.php) となっている。中身はhtmlで記述されている。
  • 取り出したい記事は、ファイルの中の <div class="entryBox"> 〜 </div><!--/class="entryBox"-->の間に記載されている。
  • 記事の間に、<div class="adsRectangle">、</div><!--/class="adsRectangle"-->で挟まれた広告があるので、これは除外したい。

方針

  • findを使用して、対象のファイル名を取得する。
  • 保存先のファイル名は、拡張子をhtmlとする。
  • grep -A もしくは -B を使用して、必要な記事の部分を抽出する。

for SRCFILE in `find . -name *.php -type f`
do
	DESTFILE=`echo $SRCFILE | sed 's/\.php/.html/'`
	cat ./head.html > $DESTFILE
	grep -A 1000000 '<div class=".*entryBox">' $SRCFILE | grep -B 1000000 '<div class=".*adsRectangle">' | head -n -1 >> $DESTFILE
	grep -A 1000000 '</div><!--/class="adsRectangle"-->' $SRCFILE | grep -B 1000000 '</div><!--/class="entryBox"-->' | tail -n +2 >> $DESTFILE
	cat ./foot.html >> $DESTFILE
done

2011-07-23_16:21-tyada

Related