見出し画像

気になる記事を複数サイトから抽出・保存・更新チェック(Python+VBA)

今日は色々なニュースサイトから、全記事を取得してCSVファイルに格納。以降、プログラムを走らせた場合、CSVファイルに格納された記事内容と比較し、更新分のみを取り込むプログラムです。

また、今回はエクセルマクロ(VBA)も駆使して、より便利さを追求する内容を記載・解説するので、良かったら真似するなり、アレンジするなりでご活用ください!

2021/4/5更新
2.コード全文のCSVへの更新書き込み部分を修正しました。
リストに対するループ処理をしつつ、リスト要素を削除してしまっているせいか、ループ処理回数が足りず、重複記事が残ることが判明したため、リストの数分ループ処理をして、重複してない記事をresult_listに格納したうえで、保存するように変更しました!!(テスト時に気付けずスイマセンデシタ・・・)

1.対象目的・サイト

目的、Fintech関連のニュースを複数サイトから、Webスクレイピングでデータ抽出します。
今回、対象とするサイト。
・Cnet Japan金融カテゴリ(https://japan.cnet.com/category/fintech/
・VentureTimes FIntechカテゴリ(https://venturetimes.jp/fintech
・TechCrunch Fintechカテゴリ(https://jp.techcrunch.com/news/fintech/
・Gizmode(https://www.gizmodo.jp/articles/

2.処理の流れ

今回の処理の流れとポイントは以下のとおり。

【処理の流れ】
◆Python
➀  あらかじめ記事を絞り込むためのキーワードを設定
➁  ファイルの存在有無により、新規処理か更新処理かを判定
➂  各サイトから記事情報を取得、新規取得の場合は全記事を取得
   更新の場合、トップページの記事のみ取得。保存済のCSVに存在する
   記事であれば、保存しない。
➃  CSVファイルに記事を格納
◆VBA
➀ 保存された記事のURLをハイパーリンク化
➁オートフィルターを設定し、今日の日付でフィルターをかける  

【処理のポイント】
・CSVファイルをデータベースがわりに使ってしまおうという発想
 Webアプリ等なら、MySQL等のデータベースに取得した記事を保存し、重 
 複チェックをしながらデータベース更新をする感じ。
 CSVへの格納や、保存済の記事との比較時等、リスト形式を多用します。
 リストの中にリストが格納できたり、使いこなせると便利です。
・正規表現を使って、記事タイトルに気になるキーワードが含まれる記事だけ抽出
 正規表現はスクレイピング自体にも使えます。慣れるまでちょっと難しい
   ですが、まずはこんなこともできるのねくらいでいいと思います。

3.コード全文

◆Python

ここから先は

10,818字 / 10画像

¥ 300

この記事が気に入ったらチップで応援してみませんか?