元職業エンジニアの生き方

これまでとこれからを考えるための備忘録

Pythonを使ってRSSから毎時でニュース記事を取得してそれを表示させてみた

宮本です。 Twitterコチラ

はじめに

機械学習に向けて情報収集の観点からRSSからデータを取得するプログラムを書いてみました。

取得対象は、とりあえずZDNet Japanの一部のRSSのみです。

仕様

  1. データベースに登録しているニュース記事を取得
  2. ZDNet JapanフィードからRSSでニュース記事を取得する
  3. 既に登録してあるデータと新たに取ってきたデータを突き合わせてなければデータベースに登録(既に登録されている場合は登録しない) ※HTML上で表示させてみたのでそれも合わせて見てみて下さい。▶コチラ

環境的なあれこれ


実装

python:zdnet_rss_regist.py


import json
import database
import feedparser

url = 'feed://feeds.japan.zdnet.com/rss/zdnet/all.rdf'
rss = feedparser.parse(url)
media_id = 1

conn, cursor = database.db()
news_list = database.selectNews(conn, cursor, media_id)

zdnet_list = []
for data in rss['entries']:
    value = data['summary_detail']['value'].replace('<p>', '').replace('</p>', '')
    url = data['links'][0]['href'].encode('utf-8')
    if (url in news_list) is False:
        if value.find('jpg') > -1:
            zdnet_list.append([
                media_id
                , url
                , data['title']
            ])

database.insertNews(conn, cursor, zdnet_list)
database.closeDB(conn, cursor)

 

結果

import databaseは独自で作成したMySQLにコネクトしたり、値を取ってきたりするファイルになります。

※ちょっと別のタイミングを見てコチラも公開シていきたいと思ってます。

database.selectNews:既に登録してあるデータからSelect処理

database.insertNews:新たにデータを登録する為のInsert処理

それと定期実行の為にCronを利用していて、現在1時間に1度処理を動かしている状態です。

ご要望があれば優先的に書きます。

外部リンク

TABIREKI - 様々なツールやデータ一覧を公開