【スクレイピング】RSSのスクレイピング(feedparser)

スクレイピング
スクレイピング準備記事

【やりたいこと】RSSフィードからスクレイピングしたい!

今回は、RSSフィードからスクレイピングを行います。

feedparserを使用すると簡単にRSSフィードからスクレイピングできます!

さっそく、やってみましょう!

【10分でできる】feedparser使用

※ダウンロード時間は10分の中に含まれていません。

0.概要

feedparserをインストールします。次に、RSSフィードを取得します。次に、Pythonスクリプトファイルを作成し、実行します。最後に、今回使用したスクリプトファイルの解説を行います。

1.使用したもの

・Virtual box

Oracle VM VirtualBox

・Vagrant

Vagrant by HashiCorp
Vagrant enables users to create and configure lightweight, reproducible, and portable development environments.

・Term Term

Tera Term (テラターム) プロジェクト日本語トップページ - OSDN
Tera Term は、オリジナルの Tera Term Pro 2.3 の原作者公認の後継版です。オープンソースで開発されており、UTF-8 表示に対応しています。 また、SSH1 対応モジュール TTSSH を拡張し、SSH2 プロトコルをサポートしています。

・Python3.4

・feedparser

2.手順

※下記の記事の内容を完了しているものとして、進めていきます。

①feedparserのインストール

pip install feedparser

上記を実行することで、feedparserをインストールしましょう。

②RSSフィードの取得

下記のリンクから、RSSフィードを取得します。

RSSフィード取得・検出ツール - BeRSS.com

RSSフィードを取得するブログのURLを記入して、自動検出スタートをクリックします。

下の方にRSSフィードが表示されるので、コピーしましょう。

③Pythonスクリプトファイルの作成

 

import feedparser

# 本サイトのRSSを読み込む
d = feedparser.parse('https://hk-ryukyu.club/hideto/feed')

# すべての要素について処理を繰り返す。
for entry in d.entries:
print(entry.link, entry.title)

Pythonクローリング&スクレイピング サンプルコードscrape_by_feedparser.pyを使用 ※URL変更

feedparser.parseの引数に先ほどコピーしたRSSフィードをペーストします。

※コードの解説は⑤で行います。

④実行

python scrape_by_feedparser.py

上記を実行します。

実行した結果、RSSフィードから、記事URLとタイトルを抜き出せました。

⑤コード解説

import feedparser

# 本サイトのRSSを読み込む
d = feedparser.parse('https://hk-ryukyu.club/hideto/feed')

# すべての要素について処理を繰り返す。
for entry in d.entries:
print(entry.link, entry.title)

上記のコードで、特に着目してほしいところは、以下の2つです。

・entry.link

・entry.title

上記の2つをインタラクティブシェルで試すと、

>>> d.entries[0].link
'https://hk-ryukyu.club/hideto/archives/811'
>>> d.entries[0].title
'【スクレイピング】urllibによるWebページの取得'

上記から、コードの「entry.link」「entry.title」は、それぞれ、記事URL記事タイトルを表していることが分かります。

3.追記

特に難しいところはないかな。

【最後に】参考図書の紹介

以下の書籍は、私がPythonスクレイピングを勉強するにあたって、使用した書籍です。

「Python逆引き大全」は、秀和システムの技術書読み放題サービス「10×Eng」で読めます。最初の2週間は無料、それ以降は、月額900円で利用できます。

「プログラミング超初心者が初心者になるためのPython入門」はkindle unlimitedで読めます。

 

コメント

タイトルとURLをコピーしました