コンテンツ取得
コンテンツ取得
#!/bin/sh
curl -fsSL http://www.wisdomsoft.jp/190.html |
tr '\n\r' '\t' |
sed -e 's/\t//g' |
grep -oP '<div class="SectionContents".*?</div>' |
sed -re 's_</?p>_\n_g' |
grep -vE '</?div'
- curlでURLのコンテンツ取得
- trで改行(\r\n)をタブ文字(\t)に変換
- sedでタブ文字を消す
- grepでSectionContentsクラスを抜き出す。-PでPerl正規表現を使って最短一致する。これをつけないと最長一致でを抜き出してくる
- sedで
<p>
タグを改行にする。-rで拡張正規表現を使わないと?(0文字または1文字)を表現できない - grep -vで
<div>
タグを消す。-Eで拡張正規表現を使わないと?(0文字または1文字)を表現できない
リンク抜き出し
リンク抜き出し
#!/bin/sh
curl -fsSL http://www.wisdomsoft.jp/189.html |
grep -o '<li><a href=".*.html">.*</a></li>' |
tr '"<>' ' ' |
awk '{print "http://www.wisdomsoft.jp/"$4.html,$5}'
- curlでコンテンツ取得
- grep -oでリストタグ内のリンク行のみ抜き出し
- trで "と<と>をスペースに変換
- awkで特定列の取得とリンクの保管
wisdomsoftコンテンツをすべてtxtに書き出す
wisdomsoftコンテンツをすべてtxtに書き出す
#!/bin/sh
# http://www.wisdomsoft.jp/189.htmlのリンクから
# リンク先のコンテンツをwisdomsoft.txtに書き出す
URL="http://www.wisdomsoft.jp/189.html"
./wisdomsoft_link.sh ${URL} |
awk '{print $1}' |
xargs -I{} ./wisdomsoft_content.sh {} > wisdomsoft.txt
まとめ
pythonのBeautifulSoup4を使ってコネコネしていましたが、ふとshellスクリプトを組みたくなって、15分休憩時間X3で作ることができました。shellって素晴らしい。
sed -rとかgrep -Pとか拡張正規表現1を使う方法が勉強になりました。
この程度だったらgrepよりawkの方がパフォーマンス良いのかな?
改善あったら教えてください。。