#author("2020-09-30T03:36:23+09:00","default:nobuoki","nobuoki") #author("2020-09-30T03:37:04+09:00","default:nobuoki","nobuoki") * はじめに [#g4bf8f21] [[コミュニティ放送局一覧 - Wikipedia>https://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%E6%94%BE%E9%80%81%E5%B1%80%E4%B8%80%E8%A6%A7]]を使って コールサイン一覧をスクレイピングしてみるテスト #pre{{{ JOZZ1AA-FM FMいるか JOZZ1AB-FM 旭川シティネットワーク JOZZ1AC-FM エフエムくしろ JOZZ1AD-FM おびひろ市民ラジオ JOZZ1AE-FM エフエムおびひろ (略) JOZZ0CL-FM あいらFM JOZZ0CM-FM 天草ケーブルネットワーク JOZZ0CN-FM FMしまじり JOZZ0CO-FM 南笑事 JOZZ0CP-FM つなぐほーむ }}} こういうのを作成します * 回答例 [#w1fd16b3] curl -sL 'https://bit.ly/2S6SdSw' | nkf -wLux --numchar-input | sed 's;<br />;_BR_;g' | grep -oE '<[^>]+>[^<]+<[^>]+>' | grep -vE '\[[0-9]+\]' | grep -B1 JOZZ | sed 's/<[^>]*>//g' | sed -n '1~3h;2~3{x;H;x;s/\n/,/;p}' | column -ts, * 解説 [#k5035a1e] #prism(bash){{{ # コミュニティFM局のコールサイン curl -sL 'https://bit.ly/2S6SdSw' | nkf -wLux --numchar-input | sed 's;<br />;_BR_;g' | grep -oE '<[^>]+>[^<]+<[^>]+>' | grep -vE '\[[0-9]+\]' | grep -B1 JOZZ | sed 's/<[^>]*>//g' | sed -n '1~3h;2~3{x;H;x;s/\n/,/;p}' | column -ts, # https://bit.ly/2S6SdSw -(redirect)-> Wikipedia curl -sL 'https://bit.ly/2S6SdSw' | \ # 数値参照の変換(と、念の為のUTF-8変換) nkf --numchar-input -wLux | \ # 念の為 <br /> タグを退避 sed 's;<br />;_BR_;g' | \ # <タグ>値</タグ> を抽出 grep -oE '<[^>]+>[^<]+<[^>]+>' | \ # 脚注を除外 grep -vE '\[[0-9]+\]' | \ # コールサインの行と、その1つ前の行を抽出 grep -B1 JOZZ | \ # タグ外し sed 's/<[^>]*>//g' | \ # 1行目(放送局名)と2行目(コールサイン)を入れ替えてカンマ区切りで結合 sed -n '1~3h;2~3{x;H;x;s/\n/,/;p}' | \ # 整形 column -ts, }}}