Pythonでニュース記事の情報を自動で収集・抽出してみます。
newspaper3kモジュールは、Pythonの標準ライブラリではありませんので、事前にインストールする必要があります。
■Python
今回のPythonのバージョンは、「3.8.2」を使用しています。(Windows10)
■newspaper3kモジュールを使用し、記事の全文を取得する
では早速、newspaper3kモジュールを使用し、記事の全文を取得するスクリプトを書いていきます。
■コード
from newspaper import Article url = 'https://www3.nhk.or.jp/news/html/20201101/k10012690561000.html' article = Article(url,language='ja') article.download() article.parse() print(article.text)
newspaper3k,Articleモジュールを呼び出して、urlという変数を作成します。変数には、ニュースサイトの記事URLを指定します。今回はNHKニュースの記事を収集・抽出してみます。
指定後、articleという変数を作成し、記事URL内にある情報を取得します。情報を取得する際は、「language=’ja’」とします。newspaper3kモジュールは日本語にも対応しています。なお、「language=’jp’」と記述してしまうとエラーが発生してしまうになるので、「’ja’」と記述します。
情報を取得後、article.download()で記事のダウンロードを行います。ダウンロードを行った後に、article.parse()で記事の解析をします。
解析後、print関数でarticle.textで記事の本文テキストを出力してみます。
■実行
今回のスクリプトを「ns_test.py」という名前で保存し、コマンドプロンプトから実行してみます。
実行してみると、今回指定したニュースサイトの記事URL内にある情報が取得され出力できることを確認できました。
今回ヤフーニュースでの検証も行いましたが、記事のURLが「https://news.yahoo.co.jp/articles/」の場合に、「現在JavaScriptが無効になっています。Yahoo!ニュースのすべての機能を利用するためには、JavaScriptの設定を有効にしてください。」と出力され本文テキストを抽出できない場合がありました。
しかし、「https://news.yahoo.co.jp/pickup/」(ヤフーニュースのピックアップ)のURLでは、本文テキストの抽出が行えました。
コメント