[Python] RSSを取得してデータを抜き出す
こんにちは、@yoheiMuneです。
本日は、以前紹介したBeautifulSoupを用いて、RSSからデータを抜き出す方法をブログに書きたいと思います。
BeautifulSoupの使いかについては、以下でブログを書きましたので参考になれば幸いです。
[Python] httplibとBeautifulSoupを用いてWebクローリングを行い、データを収集する
最後になりますが本ブログでは、フロントエンド・Python・機械学習など雑多に情報発信をしていきます。自分の第2の脳にすべく、情報をブログに貯めています。気になった方は、本ブログのRSSやTwitterをフォローして頂けると幸いです ^ ^。
最後までご覧頂きましてありがとうございました!
本日は、以前紹介したBeautifulSoupを用いて、RSSからデータを抜き出す方法をブログに書きたいと思います。
目次
事前準備
今回はhttplib
モジュールと、BeautifulSoup
モジュールを利用します。BeautifulSoupモジュールは標準には含まれないので、以下でインストールします。$ pip install --upgrade beautifulsoup4これで準備が完了です。
RSSを取得してデータを抜き出す
今回はiTunes RSSからトップソングのRSSを取得してみたいと思います。RSSのURLは以下です。https://itunes.apple.com/jp/rss/topsongs/limit=10/xmlこれを取得すると以下のようなRSSを取得することができます。
<feed xmlns:im="http://itunes.apple.com/rss" xmlns="http://www.w3.org/2005/Atom" xml:lang="ja"> <id>https://itunes.apple.com/jp/rss/topsongs/limit=10/xml</id> <title>iTunes Store: トップソング</title> <updated>2016-03-27T04:35:36-07:00</updated> <link rel="alternate" type="text/html" href="https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewTop?cc=jp&id=26105&popId=1"/> <link rel="self" href="https://itunes.apple.com/jp/rss/topsongs/limit=10/xml"/> <icon>http://itunes.apple.com/favicon.ico</icon> <author> <name>iTunes Store</name> <uri>http://www.apple.com/jp/itunes/</uri> </author> <rights>Copyright 2008 Apple Inc.</rights> <entry> <updated>2016-03-27T04:35:36-07:00</updated> <id im:id="1091460872">https://itunes.apple.com/jp/album/feel-so-alive/id1091460870?i=1091460872&uo=2</id> <title>Feel So Alive - 三代目 J Soul Brothers from EXILE TRIBE</title> (以下省略)ここから、曲名・リンク先URL・視聴URLを取得してみたいと思います。
import urllib.request from bs4 import BeautifulSoup # RSSを取得する url = "https://itunes.apple.com/jp/rss/topsongs/limit=10/xml" response = urllib.request.urlopen(url) rss = response.read().decode("utf-8") # RSSからデータを抽出する soup = BeautifulSoup(rss, "html.parser") for entry in soup.find_all("entry"): # タイトル print(entry.find("title").string) # リンク先URL print(entry.find("id").string) # 視聴URL links = [link for link in entry.find_all("link") if link["type"] == "audio/x-m4a"] if len(links) > 0: print(links[0]["href"])上記を実行した結果例は以下です。
Feel So Alive - 三代目 J Soul Brothers from EXILE TRIBE https://itunes.apple.com/jp/album/feel-so-alive/id1091460870?i=1091460872&uo=2 http://a1014.phobos.apple.com/us/r30/Music69/v4/92/06/3c/92063cfd-0cc9-4278-177a-2b1e984cfb6a/mzaf_3113353569796917687.plus.aac.p.m4a もっと - aiko https://itunes.apple.com/jp/album/motto/id1092446547?i=1092446553&uo=2 http://a679.phobos.apple.com/us/r30/Music49/v4/1c/ff/a1/1cffa131-8bd7-9107-bfed-e37279537a9a/mzaf_5473511845807714108.plus.aac.p.m4a 友よ ~ この先もずっと・・・ - ケツメイシ https://itunes.apple.com/jp/album/youyo-kono-xianmozutto/id1091489895?i=1091489900&uo=2 http://a886.phobos.apple.com/us/r30/Music69/v4/78/4e/c1/784ec15c-7c30-0382-38df-77e42d60b93e/mzaf_1019710668249696385.plus.aac.p.m4a (以下省略)こんな感じで10行ちょいのコードでRSSからデータを抽出することができます。手軽にできていいですね。
BeautifulSoupの使いかについては、以下でブログを書きましたので参考になれば幸いです。
[Python] httplibとBeautifulSoupを用いてWebクローリングを行い、データを収集する
最後に
今回はPythonを使って、RSSからデータを抜き出す方法をブログに書きました。Web上のデータをアプリケーションに利用したい場合、HTMLやRSSなどいろいろなデータ型から情報を抜き出す必要があります。それらを手軽にできる点で、Pyhtonは非常に良いなぁと思う今日この頃です。最後になりますが本ブログでは、フロントエンド・Python・機械学習など雑多に情報発信をしていきます。自分の第2の脳にすべく、情報をブログに貯めています。気になった方は、本ブログのRSSやTwitterをフォローして頂けると幸いです ^ ^。
最後までご覧頂きましてありがとうございました!