気になる記事を複数サイトから抽出・保存・更新チェック(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
ここから先は
¥ 300
この記事が気に入ったらチップで応援してみませんか?