スクレイピングとか | オヤジのブログ

オヤジのブログ

Yahooからの避難組/FC2と2足のわらじ/趣味やら日々の出来事やら

これも日記かな・・・

 

あんまり興味無かったんだけど、今日、たまたまPythonでスクレイピングするとかいう記事タイトルを見つけて、どんなことするのかなあと思いながら眺めてた。

どこかのニュースサイトの記事タイトルを拾ってきてテキストに落とすというような内容だった。

 

まずはpip で「requests」と「beautiful soup」入れて・・

requestsで目的のページのHTMLソース拾ってきて、目的の行の目印になるタグかなにか見つけて、beutiful soupで検索掛けて該当行を引っ張ってきて、パーシングして、書き出して・・・・

 

偉い大変そうだな・・・

 

あれ?、でもこれって俺既にずいぶん前にやってる工程だわ。

しかも、Pythonなんか使わずに、もちろん、追加のプログラムもライブラリもなし、DebianLinuxのシェルスクリプトと標準コマンドだけで。

※シェルスクリプトというのはいわゆる黒い画面で動く簡単なプログラム言語みたいなもの。

(dosでいうとバッチファイル、汎用機とかでいうところのCL・・なあんて言うと、わからん人は余計わからんわ!!)

 

Linuxの黒い画面で

until curl https://www3.nhk.or.jp/news/catnew.html 2>/dev/null ;do sleep5;done  | grep "<em class" | sed -e 's/<em class="title">//g' -e 's/<\/em>//g' | sed -e 's/\t//g' > nhk_news.txt

(これちょっと長いから数行になっちゃってるけど、実は一行。
いわゆるワンライナーっていうやつ。)
 

これを実行するとnhk_news.txtっていうファイルに某放送局のホームページにあるニュース一覧がテキストで落ちてくる。

 

(ん?NAKかな?)

このニュースタイトルが

 

体操 NHK杯が開幕 女子1日目 宮田笙子がトップに 2位は岸里奈
政治資金規正法改正 自民 あす改めて協議 修正を求める意見
参院政倫審 政治資金 議員29人に出席と説明求める議決で合意
体操 橋本大輝 出場予定のNHK杯棄権 練習で右手中指痛める
連合 次の衆院選に臨む新方針発表 立民と国民 両党を支援へ
【随時更新】ロシア ウクライナに軍事侵攻(5月16日の動き)
中国 ウクライナ侵攻後 ロシアへ軍事転用可能物資の輸出急増
日本生命 米市場に本格参入 AIG傘下の生保に5900億円余出資へ
スケートボード 女子パーク予選 開心那がトップ
IT関連企業IR担当の元執行役員逮捕 インサイダー取引か 東京
大相撲夏場所5日目 大関 琴櫻4連勝 結びの一番で翔猿を退ける
スロバキア首相銃撃事件 政治的な動機に基づく可能性の見方も
大阪公立大 研究室で保管の青酸カリなど毒性強い2種の薬品紛失
スポーツクライミング 五輪出場かけ 伊藤ふたばが2位スタート
岐阜県内のリニアトンネル工事 いったん中断し地質調査へ
バスケ日本代表の新ユニフォーム発表 渡邊雄太が抱負
DeNA ドラフト1位ルーキー度会 1軍登録抹消 直近2試合出場なし
離婚後の「共同親権」民法など改正案 参議院法務委で可決
中国とロシア 首脳会談で共同声明署名 ウクライナ情勢も議論へ
AIが災害発生監視やインフラ劣化診断 新たな防災減災対策とは


こんな風に一発でテキストファイルになる。

 

簡単に説明すると、curlっていうコマンドは、アドレスを指定すると該当webページの中身を拾ってくる機能があって、それをgrepというキーワードに該当する行だけ引っ張ってくるコマンドでニュースタイトル行だけ引っ張り出して、SEDという文字列操作のできるツールでhtmlタグと余分なスペースを除去し、その結果をファイルに出力して・・・っていうのを一挙動に行っている。

 
 これくらいなら、Linuxだったら、Pythonも追加のライブラリもプログラムも使わずにできる。
多分Windowsには無理・・・とは言わないけど、準備と手間が半端なくて、それならPythonとrequestsとBeautiful Soup使いたくなるわっていう感じ。
まあ、でもWindowsもWSLがあるからなってそりゃ結局Linux。
 
あ~、またこんな訳のわからないこと書いていると、見にくる人減るんだろうな。
 
あ・・・・、そもそも減るほどの人も来てないか。