好きなキーワードでRSSフィードスクレイピングしてCSVに保存する

create 2021/08/12

Python ポートフォリオ 勉強メモ

t f B! P L

クロールの練習で、好きな単語でGoogleニュースを検索して、CSVに保存するコードを書きました。
パーセンドエンコードが最初はわからなくてちょっと苦戦しました。

RSSフィードのクロールをするコードなので、RSSフィードがあるサイトなら、Googleニュース以外でも使い回しできると思います。

import feedparser
import urllib.parse
import csv

# 取得したいキーワードを入れる
keyword = ''

# keyword変数に入れた単語をパーセンドエンコードに変換
keyword_quote = urllib.parse.quote(keyword)

# 日本語をパーセンドエンコードに変換済みのURLを自動で作成してurl変数に格納
url = f'https://news.google.com/rss/search?amp;hl=ja&gl=JP&q={keyword_quote}&hl=ja&gl=JP&ceid=JP:ja'

# 一回動かしたらセッション切れるまではデータがd変数に入ったままになるのでコメントアウトでトライ&エラーできる
# d = feedparser.parse(url)

news = []
for i, entry in enumerate(d.entries, 1):
    # newsリストに辞書としてほしい情報を格納
    news.append({"id": i, "title": entry.title, "source": entry.source.title,"url": entry.link, "published": entry.published })

    # 再利用しやすいようにCSVへ書き込み。Google colabで動かすと、同一ディレクトリ内にcsvファイルが生成される。
    with open(f"{keyword}.csv", "w", newline="") as f:
        writer = csv.DictWriter(f, ["id", "title", "source", "url", 'published'])
        writer.writeheader()
        writer.writerows(news)
        
# 処理が終わったのがわかるためのメッセージ
print('保存できたよ')

このブログを検索

自己紹介

自分の写真
ずっとなにものかになりたくてもがいている一応ワーママです。 プログラミング記事は独学による個人的な勉強メモのため、誤った内容が含まれることもあるかもしれません。
何かお気づきの際は、問い合わせフォームや、コメント欄からご指摘いただけましたら、大変助かります。

参加中ランキング

PVアクセスランキング にほんブログ村

ブログ アーカイブ

QooQ