応募トーク
これは応募されたトークです。聞きたいと思うトークをSNSで拡散しましょう。選考時に参考にさせていただきます。
talk
Feedy - RSS Feed fetching frameworkを使ったお手軽情報収集(ja)
スピーカー
Masashi Shibata
対象レベル:
中級
カテゴリ:
Useful libraries
説明
Feedy (https://pypi.python.org/pypi/feedy) は、RSSフィードの情報収集に特化したライブラリです。このセッションではFeedyの使い方やプラグインの作り方とともに、具体的な活用例を紹介します。
目的
RSS Feedを扱うプログラムを簡単かつ素早く作れるようになる。
概要
Feedy(https://pypi.python.org/pypi/feedy) は私が開発しているRSS Feedからの情報収集に特化したライブラリです。以下の様な特徴を持っています。
1. デコレータベースで簡潔に記述可能
2. デバッグ等に便利なコマンドラインインターフェースを用意
3. asyncio/aiohttpを使用しているため高速に記事を取得(Feedyを使う際は非同期処理を意識せずに済みます)
4. 誰でも簡単に機能を拡張できるプラグインシステム
これまでRSSフィードに関する処理を書く場合、以下のライブラリを使用する例を多く見かけます。
- feedparser等のライブラリとrequests、BeautifulSoup4等のHTMLパーサを使用
- Scrapyを使用
feedparserによってRSSフィードをパースし、requestsで各リンク先のHTMLを取得、BeautifulSoup4等のHTMLパーサでパースするという処理する。こういった処理を毎回いちから書くのは少し面倒です。また高速に動作させるためにasyncio/aiohttpを使って非同期に処理しようとするとその実装は非常に複雑になってしまいます。Feedyはそういった面倒なことを利用者に意識させることなく処理してくれます。
またScrapyはWebサイトのクローリングが簡単に記述できる非常に便利なフレームワークですが、RSSフィードをフェッチして処理するだけにしては、その機能や構成が少し複雑です。慣れるまでに時間がかかるものでしょう。
RSSフィードを配信しているサイトは多いため、クローリングせずともそこから情報を集められるというケースは多くあるかと思います。こういったシーンではFeedyは非常に活躍します。このセッションではFeedyの使い方やプラグインの作り方とともに、具体的なFeedyの活用例を紹介します。
1. RSSフィードの書くエントリのSNS(Facebook, Pocket, はてなブックマーク)でのシェア数を簡単に取得する
2. Hacker Newsやはてなブックマークのホットエントリに含まれる単語から自分の好きな記事を抽出する。