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









