Pythonでnewspaper3kを使用しニュース記事の情報を自動で収集・抽出する

スポンサーリンク

Pythonでニュース記事の情報を自動で収集・抽出してみます。

newspaper3kモジュールは、Pythonの標準ライブラリではありませんので、事前にインストールする必要があります。

■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では、本文テキストの抽出が行えました。

コメント

タイトルとURLをコピーしました