1
5

More than 3 years have passed since last update.

PythonでGoogleNewsを日本語かつjsonで取得する

Last updated at Posted at 2021-03-25

Googleのニュースは、例えばビットコイン関連のニュースが取得したい場合、実は以下のようなURLで取得できる
https://news.google.com/rss/search?q=ビットコイン&hl=ja

[参考]↓
Google News Rss(API)

ただ、これだと結果がxmlなのでちょっと扱いづらい…
検索すると以下のようなライブラリがあったので使用してみた

ドキュメントの通り、以下のように書いて動かしてみたが、エラーが出る

from GoogleNews import GoogleNews

googlenews = GoogleNews(lang='ja', encode='utf-8')
googlenews.get_news('ビットコイン')
result = googlenews.results()
print(result[0])
'ascii' codec can't encode characters in position 14-19: ordinal not in range(128)

Pythonが3になって以来、とんと見かけなくなったエラーだったので焦ったが、どうやら以下の記事によると、日本語や中国語に対応していないらしい。

なので、引数をurlエンコードして渡してやればうまく動いた。

from GoogleNews import GoogleNews
import urllib.parse

googlenews = GoogleNews(lang='ja', encode='utf-8')
googlenews.get_news(urllib.parse.quote('ビットコイン'))
result = googlenews.results()
print(result[0])

2021/03/25 12:40時点での実行結果は以下の通り

{'title': '指標が示すビットコインの強気相場:リザーブリスクとは', 'desc': 'ブロックチェーン・データは、保有者や購入検討者にとってビットコインが依然として魅力的であることを示している。相場は最高値をつけた以降、小康状態に ...', 'date': '19 時間前', 'datetime': datetime.datetime(2021, 3, 24, 8, 7, 25), 'link': 'news.google.com/./articles/CAIiEJ1D6QqbEkjOiubGSaHHO8oqMwgEKioIACIQKQ8vX7rIbv4J-a3Vk64LmCoUCAoiECkPL1-6yG7-Cfmt1ZOuC5gwtazdBg?hl=ja&gl=JP&ceid=JP%3Aja', 'img': 'https://lh3.googleusercontent.com/UMKcCAW6LczwEg3VALRBEq2G4NMvb3qoL7daQxDrnY62oGIhQf3NIb002kqxWK5ENcX-3N6uJ51M5vJiRf5J=-p-df-h100-w100', 'media': None, 'site': 'コインデスク・ジャパン'}
1
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
5