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': 'コインデスク・ジャパン'}