【Python/feedparser】ニコニコ生放送のRSSから番組一覧情報を取得

Pythonモジュール「feedparser」でニコニコ生放送のRSSから番組一覧情報を取得するソースコード付きでまとめました。

【最新版】ニコ生のRSSから番組一覧情報を取得

Pythonモジュール「feedparser」でニコ生のRSSから番組一覧情報(最新)を取得します。
ニコニコ生放送では、RSS(http://live.nicovideo.jp/recent/rss?p=ページ数)から最新の番組情報を取得できます。
ページ数を進めるほど、古い番組情報を取得できます。

取得先RSS:http://live.nicovideo.jp/recent/rss

ソースコード①

RSSの1ページ目のみを取り出す最低限のコードです。

# -*- coding: utf-8 -*-
import feedparser

rss_url = "http://live.nicovideo.jp/recent/rss"

# urlからRSSを取得
feed = feedparser.parse(rss_url)

# 記事の情報を表示
for entry in feed.entries:
    print('-----')
    print("放送タイトル:", entry.title)
    print("コミュID:", entry.nicolive_community_id)
    print("配信者:", entry.nicolive_owner_name)
    print("放送ID:", entry.id)
    print("放送URL:", entry.link)
    print("放送種類:", entry.nicolive_type)
    print("サムネURL:", entry.media_thumbnail[0]['url'])
    print("視聴者数:", entry.nicolive_view)
    print("メンバー限定:", entry.nicolive_member_only)
    print("コミュ名", entry.nicolive_community_name)
    print("説明:", entry.summary_detail['value'])
    print("動画タグ:", entry.tags[0]['term'])
    print("コメント数:", entry.nicolive_num_res)
    print("開始時間:", entry.published)
    print('-----')

ソースコード②

RSSの全てのページから番組情報を取り出すサンプルコードです。

# -*- coding: utf-8 -*-
import feedparser

# 放送中の番組情報を取得
def get_nicolive_list(rss_url):
    # urlからRSSを取得
    feed = feedparser.parse(rss_url)

    # 記事の情報を表示
    for entry in feed.entries:
        print('-----')
        print("放送タイトル:", entry.title)
        print("コミュID:", entry.nicolive_community_id)
        print("配信者:", entry.nicolive_owner_name)
        print("放送ID:", entry.id)
        print("放送URL:", entry.link)
        print("放送種類:", entry.nicolive_type)
        print("サムネURL:", entry.media_thumbnail[0]['url'])
        print("視聴者数:", entry.nicolive_view)
        print("メンバー限定:", entry.nicolive_member_only)
        print("コミュ名", entry.nicolive_community_name)
        print("説明:", entry.summary_detail['value'])
        print("カテゴリ:", entry.tags[0]['term'])
        print("コメント数:", entry.nicolive_num_res)
        print("開始時間:", entry.published)
        print('-----')


# 放送中の番組数を取得
def get_nicolive_total():
    # urlからRSSを取得
    feed = feedparser.parse("http://live.nicovideo.jp/recent/rss")
    return int(feed.feed.nicolive_total_count)


# 最大ページ数を計算
max_page = int(get_nicolive_total() / 30)


# RSS全ページから番組情報を取得
for cnt in range(max_page):
    rss_url = "http://live.nicovideo.jp/recent/rss?p=" + str(cnt)
    get_nicolive_list(rss_url)

参考:【Python/feedparser】ニコニコ生放送の番組数をカウント

【注目版】ニコ生のRSSから番組一覧情報を取得

Pythonモジュール「feedparser」でニコ生のRSSから番組一覧情報(今後の注目放送版)を取得します。

取得先RSS:http://live.nicovideo.jp/rss

ソースコード

# -*- coding: utf-8 -*-
import feedparser

rss_url = "http://live.nicovideo.jp/rss"

# urlからRSSを取得
feed = feedparser.parse(rss_url)

# 記事の情報を表示
for entry in feed.entries:
    print('-----')
    print("放送タイトル:", entry.title)
    print("放送ID:", entry.id)
    print("放送URL:", entry.link)
    print("放送種類:", entry.nicolive_type)
    print("サムネURL:", entry.media_thumbnail[0]['url'])
    print("開場時間:", entry.nicolive_open_time)
    print("開始時間:", entry.nicolive_open_time)
    print('-----')

関連記事
1 【Python/feedparser】ニコニコ生放送のRSSから番組一覧情報を取得
2 【Python/BeautifulSoup4】Webスクレイピング入門
3 Python入門 基本文法

コメント