Help us understand the problem. What is going on with this article?

【データサイエンスの基礎】pythonでRSSからデータ収集

More than 3 years have passed since last update.

前記事

一応シリーズ続き。今後も取得したデータ解析とかも続けて書いていく予定。(予定)

今回はYahoo!ニュースからRSSでデータ取得してニュースの見出しとリンクを出力するまでをやります。

$ python yahoo_news_rss.py

で、

Yahoo!ニュース・トピックス - トップ
http://dailynews.yahoo.co.jp/fc/world/nuclear_weapons/?id=6160968
NPT決裂 文書採択できず閉幕
http://dailynews.yahoo.co.jp/fc/domestic/injury_case/?id=6160975
家族ら切られ4人死傷 男逮捕
http://dailynews.yahoo.co.jp/fc/economy/coffee_chain/?id=6160962
スタバ鳥取オープンに千人超
http://dailynews.yahoo.co.jp/fc/economy/apparel/?id=6160961
6月契約終了のバーバリー好調
http://dailynews.yahoo.co.jp/fc/science/life_on_earth/?id=6160969
「ゼロ」の概念をサル認識か
http://dailynews.yahoo.co.jp/fc/sports/prowrestling/?id=6160973
初代タイガーマスク 緊急手術
http://dailynews.yahoo.co.jp/fc/entertainment/broad_casting/?id=6160945
生中継に反発 安藤優子氏混乱
http://dailynews.yahoo.co.jp/fc/domestic/obituary/?id=6160936
闘病のアイドル 丸山さん死去

がでてくるところまでの簡単なRSSの使いかたを解説します。

RSSとは

RSSは、ニュースやブログなど各種のウェブサイトの更新情報を簡単にまとめ、配信するための幾つかの文書フォーマットの総称である。

wikiより。
つまり、本物スクレイピングしたら手間なところ、情報取得用に簡単にまとめられてるものて感じかな。

moduleを揃える。

feedparserのインストール

RSSフィードの解析にはfeedparserを利用します。

とのことなので、feedparserインストールこれが参考になった。

feedparserの働き

ドキュメントを参照するとわかるのですが、以下の二つのkeyはおさえておきましょう。

entries

A list of dictionaries. Each dictionary contains data from a different entry. Entries are listed in the order in which they appear in the original feed.

feed

A dictionary of data about the feed.

それぞれの内部のkeyに関しては、ドキュメントに一覧になっているのでそちらをさらに参照。

RSSの取得と表示

yahooがこんな感じでRSS提供しています。
のでこのURL叩いて帰ってきたXMLをdictionaryにparseしてやるのが以下。

yahoo_news_rss.py
import feedparser

RSS_URL = "http://rss.dailynews.yahoo.co.jp/fc/rss.xml"

yahoo_news_dic = feedparser.parse(RSS_URL)

これで、ニュースがdictionaryに入る。どんな構造で入っているかはfeedparserのドキュメント見つつ。

んで以下が、全体のtitleとそれぞれの記事のタイトルとリンクを表示するところ。

yahoo_news_rss.py
print yahoo_news_dic.feed.title

for entry in yahoo_news_dic.entries:
  title = entry.title
  link  = entry.link
  print link
  print title

で、冒頭にあったように

Yahoo!ニュース・トピックス - トップ
http://dailynews.yahoo.co.jp/fc/world/nuclear_weapons/?id=6160968
NPT決裂 文書採択できず閉幕
http://dailynews.yahoo.co.jp/fc/domestic/injury_case/?id=6160975
家族ら切られ4人死傷 男逮捕
http://dailynews.yahoo.co.jp/fc/economy/coffee_chain/?id=6160962
スタバ鳥取オープンに千人超
http://dailynews.yahoo.co.jp/fc/economy/apparel/?id=6160961
6月契約終了のバーバリー好調
http://dailynews.yahoo.co.jp/fc/science/life_on_earth/?id=6160969
「ゼロ」の概念をサル認識か
http://dailynews.yahoo.co.jp/fc/sports/prowrestling/?id=6160973
初代タイガーマスク 緊急手術
http://dailynews.yahoo.co.jp/fc/entertainment/broad_casting/?id=6160945
生中継に反発 安藤優子氏混乱
http://dailynews.yahoo.co.jp/fc/domestic/obituary/?id=6160936
闘病のアイドル 丸山さん死去

てな感じで出てくる。

以上、ソースコードはこちらにも。

finc
健康寿命を伸ばすアプリFiNCの開発・運営を行うモバイルヘルステクノロジーベンチャー
https://finc.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした