newspaper3k で経済指標のニュースを取得(失敗)
ロイターの経済指標ニュースを取得する
https://jp.reuters.com/investing/news/economic
jupyter notebook
で
newspaper3 を
インストールするには
でOK
次に
分かち書き用のライブラリ
tinysegmenter
をpipでインストール
jupyter notebook でインストールするには
1 | !pip install tinysegmenter
|
まず
newspaper から article をインポート
次に
自然言語処理を利用し
記事のキーワードだけを抽出したり
サマリーを取得するため
自然言語処理ライブラリであるntlkをダウンロード
でインポートして
実行結果で True になればOK
次にURL設定
ニュース取得のとき
build を使うことで複数ページの取得が可能
article だと単一記事になる
1 | website = newspaper.build(url)
|
あとは article で一つ一つ取り出して自然言語処理していく
これは for で行う
サマリー表示のときに
記事と記事の時に改行をいれる
これは
をつければOK
これだとすごい大量の記事になるので
表示数を制限する
今回は9の記事表示にした
あと見やすくするために記事に連番をつける
1 2 3 4 5 6 7 8 9 10 11 12 | i = 0
for article in website.articles:
article.download()
article.parse()
article.nlp()
print ( "記事" , str (i), ":" ,article.title)
print (article.url)
print (article.summary, end = "\n\n" )
if i > 9 :
break
i = i + 1
|
これで取得はできたけど
経済指標と関係ないニュースがほとんどになってしまう
https://jp.reuters.com/news/business
にしたけど
あまり変わらない
URLの指定が悪いのか
もしくはスクレイピングしたほうが早いかは微妙なところ
記事タイトルをみると
どっちを指定しても
トップニュースを取得してしまっている
https://jp.reuters.com/news/archive/economicNews?view=page&page=2&pageSize=10
としてみたけど結果が変わらないため
URLの指定の問題ではなく
取得する場所の問題になりそう
記事を取得しない原因については
をつけることで解決
【Python】newspaper3kで記事が取得できない時の対処法
を参考に
デフォルトは True になっているため
ローカルに記事を保存してしまう
newspaper3k でもやってるのはスクレイピングなので
サイトを解析してスクレイピングしたほうが効率的なのかもしれない