マニュアル

マニュアル


マニュアル

はじめに

このプラグインはWP RSS Scraping Post(ワードプレス RSSスクレイピングポスト)と呼びます。
WP RSS Scraping Postは阿修羅ワークス代表長岡が開発したオリジナルのワードプレス向けプラグインです。

RSSフィードURLの取得方法

RSSフィードURLの取得方法は、大抵 [ RSS ] と記されたアイコンから取得できます。
RSSフィードはワードプレスはもちろんのこと、多くのメジャーなブログから取得できる他、Yahooニュースなどからも取得できます。

Yahoo! ニュース RSS

おそらく日本で最大のRSSフィードを提供しているのがYahoo! ニュース RSSです。メジャーなメデイアをほとんど網羅しています。
ただし、Yahoo! ニュース RSSのフィードは本文と概要がありません。あるいは本文が省略されています。本文を取得するためにはスクレイピング機能を使って下さい。

Yahoo! ニュース RSS

ワードプレスのRSSフィード取得方法

ワードプレスはデフォルトでRSSが出力されています。しかし、RSSフィードのリンクを明示しているサイトはあまりありません。
基本的には「http://hoge.com/?feed=rss2」のフォーマットになっていることがほとんどです。「hoge.com」の部分は取得したいサイトのドメインに置き換えて下さい。

ライブドアブログのRSSフィード取得方法

ライブドアブログはデフォルトでRSSが出力されています。
基本的には「http://blog.livedoor.jp/user/index.rdf」のフォーマットになっています。「user」の部分は取得したいサイトのブログのユーザー名に置き換えて下さい。

FC2ブログのRSSフィード取得方法

FC2ブログはデフォルトでRSSが出力されています。
基本的には「http://ブログURL/?xml」のフォーマットになっています。「ブログURL」の部分は取得したいサイトのブログURLに置き換えて下さい。

アメーバブログのRSSフィード取得方法

アメーバブログはデフォルトでRSSが出力されています。
基本的には「http://feedblog.ameba.jp/rss/ameblo/アメーバID/rss20.xml」のフォーマットになっています。「アメーバID」の部分は取得したいサイトのアメーバIDに置き換えて下さい。

seesaaブログのRSSフィード取得方法

seesaaブログはデフォルトでRSSが出力されています。
基本的には「http://hoge.seesaa.net/index20.rdf」のフォーマットになっています。「hoge」の部分は取得したいサイトのユーザーIDに置き換えて下さい。

AmazonランキングのRSSフィード取得方法

1.カテゴリから例としてDVDストアを選択します。
2.Amazonランキングをクリックします。
3.ページの下にある、RSSフィードマークの横にあるリンクをクリックします。
例: https://www.amazon.co.jp/gp/rss/bestsellers/dvd/ref=zg_bs_dvd_rsslink

WP RSS Scraping Postを設定する
投稿設定

投稿の設定をします。
この投稿設定は全体設定となります。フィード登録で個別に投稿設定を指定していない場合は、この投稿設定が適用されます。

上級投稿設定

上級投稿設定は投稿時にデータを加工するための設定です。

検索エンジン掲載可否設定

検索エンジン掲載可否設定は、RSSで取得したコンテンツが検索エンジンにコピーコンテンツとみなされペナルティを受けるおそれがある場合に設定します。
検索エンジンに掲載をさせたくない場合は「させない」を選択して下さい。

テンプレート設定

テンプレート設定は投稿時に投稿の体裁を整えるための設定です。
テンプレートを編集することで自由にデザインを拡張できます。
テンプレートに含まれるプレースホルダは独自変数に置き換わります。

……RSS ID
……RSS取得元URL
……RSSの日時
……投稿タイトル
……RSSのタイトル
……RSSの本文(あれば)
……RSSの説明概要(あれば)
……取得で使用したフィード名

オリジナルのCSSスタイル

オリジナルのスタイルシートを指定できます。styleタグは不要です。
指定するとテーマフォルダに「cache_css」というフォルダが作られ、その中にスタイルシートとして書き出され、ヘッダーにリンクが出力されます。

巡回設定

巡回設定はwp-cronの機能を使った定期実行スケジュールを設定できます。
ワードプレスの疑似cronはワードプレスにアクセスされた時に起動します。よって、アクセスがまったくない状態ではスケジュールが機能しないのでご注意下さい。

スケジュール間隔

スケジュール間隔は [ フィード登録 ] で登録したフィードを実行する間隔です。フィード自体を実行する間隔ではないのでご注意下さい。
例えば、スケジュール間隔を1時間に設定した場合、 [ フィード登録 ] でフィード巡回時間を30分に設定した場合は、1時間に1回した実行されません。
1時間に2回、30分ごとに巡回させたい場合は、スケジュール間隔を30分以下に設定して下さい。必ずフィード巡回時間よりもスケジュール間隔を短く設定して下さい。

環境設定

環境設定は基本的にはいじりませんが、プラグインの動作環境を設定できます。

最大記事数

初期設定では最大記事数が10000件になると動作を停止するようになっています。
これは自動的に投稿され続けるとワードプレスのデータベースが肥大化し機能不全に陥ってしまうことを防ぐためです。
記事が増えすぎて動作が遅くなってしまった場合は記事を削除するか、サーバー側のスペックを上げるなどの措置をとる必要があります。
一般的なレンタルサーバーの場合、ワードプレスの仕様上記事数が40000件を超えると遅くなっていきますのでご注意下さい。
なお、拙作のオリジナルプラグイン「Delete Press」を導入すると不要な記事を自動的に削除することができます。

フィード登録

WP Rss Scraping Postの基本的な設定が終わったらいよいよ [ フィード登録 ] を行います。
フィード登録を行う前に取得したいRSSフィードURLをピックアップしておいて下さい。

フィードURL(必須)

フィードURLには調べておいたRSSフィードURLを入力して下さい。入力する前にブラウザでURLを開いてRSSが表示されるか調べておいて下さい。

更新間隔

更新間隔はフィードを巡回させる間隔です。あまりにも短時間に巡回させると取得元に過大な負荷が掛かりアクセス制限を掛けられる可能性があります。
更新間隔はそのフィードが更新される間隔に合わせてください。

投稿カテゴリ

投稿カテゴリを指定すると記事がそのカテゴリに含まれます。指定しない場合は [ 投稿設定 ] の投稿カテゴリ設定が採用されます。
新規にカテゴリを作りたい場合は、予め [ カテゴリ ] メニューから追加して下さい。

投稿タグ

投稿タグを指定すると記事がそのカテゴリに含まれます。指定しない場合は [ 投稿設定 ] の投稿タグ設定が採用されます。
登録されていないタグは新規追加となります。複数のタグを指定する場合はカンマで区切ります。タグを編集したい場合は、 [ タグ ] メニューから編集して下さい。

投稿タイプ

投稿タイプを指定すると記事がその投稿タイプに投稿されます。指定しない場合は [ 投稿設定 ] の投稿タイプ設定が採用されます。
ワードプレスの初期状態では「投稿ページ(post)」と「固定ページ(page)」の二種類の投稿タイプが用意されています。

投稿ステータス

投稿ステータスを指定すると記事の投稿ステータスを指定できます。指定しない場合は [ 投稿設定 ] の投稿ステータス設定が採用されます。

フィードステータス

フィードステータスはフィードの実行と停止を指定できます。 [ 停止 ] にするとフィード巡回を一時停止できます。

上級設定

上級設定はウェブとワードプレスの知識が必要となる難易度の高い設定です。

カスタムフィールド追加

カスタムフィールド追加は投稿記事にカスタムフィールドを追加できます。指定しない場合は [ 投稿設定 ] のカスタムフィールド設定が採用されます。
カスタムフィールドは「キー::値」の書式で指定します。複数のカスタムフィールドを追加したい場合は改行で区切ります。

ダイレクト取得

ダイレクト取得はRSSの取得ページにリモートアクセスしダイレクトにコンテンツをスクレイピングする機能です。
この機能を使用する場合は「取得する」を指定して下さい。

続きを読むリンクセレクタ名

スクレイピングしたいページに「続きを読む」リンクが指定されて、さらに別のページにジャンプする場合は「続きを読む」リンクを取得する必要があります。
例えば以下のような「続きを読む」リンクが設定されているとします。

<a class="newsLink" href="https://hoge.com/news/123/?news_id=abc" >[続きを読む]</a>

この場合はセレクタ名として「.newsLink」を指定します。
セレクタの指定方法はCSSのセレクタと同じです。
続きを読むリンクが複数ページに分かれている場合は1ページしか取得できません。

セレクタの調べ方

取得するページ内セレクタ名

スクレイピングしたいページのコンテンツを取得するためのセレクタを指定します。 例えば以下のようなソースコードがあるとします。

<div class="articleMain">
        <div class="paragraph">
            <p class="ynDetailText">
                記事本文□□□□□□□□□□□□□□□□□□□□□□□<br>
                □□□□□□□□□□□□□□□□□□□□□□□□□□□<br>
                □□□□□□□□。
            </p>
        </div>
</div>

この場合はセレクタ名として「.articleMain」を指定します。
セレクタの指定方法はCSSのセレクタと同じです。

セレクタの調べ方

カスタムテンプレート

カスタムテンプレートはそのフィード独自に適用できるテンプレートです。指定しない場合は [ テンプレート設定 ] で選択されたテンプレート設定が採用されます。
テンプレートを編集することで自由にデザインを拡張できます。
テンプレートに含まれるプレースホルダは独自変数に置き換わります。

……RSS ID
……RSS取得元URL
……RSSの日時
……投稿タイトル
……RSSのタイトル
……RSSの本文(あれば)
……RSSの説明概要(あれば)
……取得で使用したフィード名

置き換え文字列

本文の特定の文字列を任意の文字列に置き換えします。大文字小文字、半角全角は区別されます。
「対象文字列::置換文字列」の組合せで指定します。複数指定する場合は改行で区切ります。

正規表現で削除するパターン

本文の特定の文字列パターンを正規表現を使って任意の文字列に置き換えします。
「正規表現::置換文字列」の組合せで指定します。デリミタの/(スラッシュ)は必要です。改行で複数指定できます。

正規表現

付録

質問が多いYahoo! のRSSフィードで全文取得を行う方法を紹介します。
※Yahoo! のRSSフィードは個人利用にのみ使用することができます。ウェブでの公開については許可されていません。自己責任でお願いします。

続きを読むリンクのセレクタ

Yahoo! ニュースは要約と本文という二段構成となっており、URLも異なります。
「続きを読む」リンクをクリックすると全文のページへと移動できます。
よって最初のページで「続きを読むリンクのセレクタ」を取得する必要があります。

例として「Yahoo! 国内ニュース(トピックス)」で説明します。

残念ながら2021年2月現在、Yahoo! RSSはスクレイピング対策が施され、今まで取得するための足がかりだったクラス名が動的に変化するようになりました。
動的に変化するため決め打ちでの取得ができなくなったため、以下の方法で代替します。
なお、このセレクタ指定も変わる可能性がありますので注意して下さい。

セレクタは以下のようになります。

div p a:contains(続きを読む)

※「contains」はタグに囲まれた文字列に指定文字列が含まれる場合、という条件を意味します。

取得するページ内セレクタ

次に「取得するページ内セレクタ」です。
よってセレクタは以下のようになります。

.article_body
フィードに登録してみる

「続きを読むセレクタ」と「取得するページ内セレクタ」を調べたらフィードに登録します。
登録例を紹介します。