【Yealico】日本語版のサイトルール(siterule)Wiki

皆さん、超お久しぶりです。
この記事ではYealicoのサイトルール(siterule)を作るために必要な情報をまとめています。

基本的には、Yealico公式ブログのWikiを日本語訳していますが、自分的に理解しやすい言い回しなどに変更したり加えたりしています。

 

実用的な含めた記事は後日出すので、Twitterでもフォローして通知がとれるようにしておいてください。

また、Yealicoについてまだよくわかっていない方はこちらの記事をどうぞ。

関連記事

皆さんこんにちは。今回はアプリ版漫画村と話題のアプリ「Yealico」の使い方を徹底解説していこうと思います。 一応、Yealicoを普通に使う分ではこの記事一つで完結するように作成しています。Ye[…]

 

Yealicoのサイトルールとは

Yealicoのサイトルールには

  • サイト
  • ルール
  • セレクタ

の3つの主要コンポーネントが存在します。

 

1つのサイトに対し、複数のルールが含まれ、さらにそのルールには複数のセレクタが含まれます。

 

少しややこしいですが、複数のセレクタをまとめたのがサイトルールで、それらのルールをさらにまとめたのがサイトと理解すれば分かりやすいと思います。

正直この関係性が理解できていなくても問題ありません。

Yealicoのサイトルールエディタはわかりやすく作られています。

 

では、まずこの「セレクタ」から理解していきましょう。

 

セレクタ

セレクタの役割はwebサイト内の指定されたデータを取得する方法をYealicoに伝えることです。

その為、セレクタはサイトルール全体の中で一番重要な部分となっています。

このセレクタを使いこなすには

を理解している必要があります。

 

この4つはwebプログラミングの初歩的な内容となります。

分からない方は自分で調べてみて、それでも分からない方はオンラインスクールを利用してみましょう。
Yealicoサイトルール作りの延長線で仕事が出来るようになるかもしれません。
逆に言えば、webサイトがある程度作れるくらいになればYealicoサイトルールも作れるようになっています。

>>定額制で質問し放題【Web食いオンラインスクール】

数十万かかるオンラインスクールが多い中、月額10,800円とリーズナブルかつ
ここであれば定額制で質問し放題なので、初心者でも安心です。

また、月額制なのでいつでも辞められるので、満足する所まで勉強出来たらすぐやめれます。

 

 

さて、話を戻しますがセレクタには以下の5つのパラメータが含まれています。

  • Selector
  • Function
  • Param
  • Regex
  • Replacement

 

なんかおんなじ単語が出てきてややこしいですが、関係性は以下の画像のようなイメージです。

この記事内ではごちゃごちゃにならないようにセレクタとSelectorを使い分けて解説します。

 

Selector

特定のHTML要素を選択できるCSS3対応のCSSセレクタを設定します。
また、JSONPathにも対応しています。

特別な構文として「this」があります。
これは現在選択されている要素を表します。

以下、Selectorにて選択されている要素を「現在の要素」と呼びます。

 

Function

現在の要素で実行されるメソッドです。

このFunctionは以下の値をサポートしています。

  • 「html」
    現在の要素内のすべてのHTML文字列を取得します。
  • 「text」
    現在の要素内のすべてを純粋な文字列を取得します(つまりHTMLタグは含まれません)。
  • 「attr」
    現在の要素の属性値を取得します。
    具体的にどの属性値を取得するかは次のParamパラメータに設定する必要があります。
  • 空白文字または「nil」
    現在の要素全体を含むすべてのHTML文字列を取得します。(つまりHTMLタグを含みます)

コンマで区切ることで複数の機能を使用できます。

 

Param

Functionがattrに設定されている場合、このParamにてどの属性値を取得するかを設定できます。

コンマで区切ることで複数の属性を指定できます。

 

Regex

1つ以上のグループを含む、Selectorによって取得された文字列で使用される正規表現です。

次のReplaceパラメータで使用します。

 

Replace

このReplaceパラメータは上記のRegexパラメータを使用する場合にのみ有効です。
先ほどのRegexにて一致したグループはプレースホルダー$1,$2,$3を使用して参照できます。

$1はRegexにて一致した1番目のグループ値、$2は2番目のグループ値、$3番目は3番目のグループ値となります。

また、Replaceが空の場合、デフォルトの値は$1が使用されます。

条件として、一致するものが無く元の文字列を使用したい場合は「|{source:}」プレースホルダーを使用します。

 

最終的なセレクタの目的は要素や文字列を抽出することです。

HTMLコードの中から先ほどの5つのパラメータを用いて要素やURL、タイトルなどを抽出します。

 

ルール

ルールは様々なセレクタのコレクションであり、以下の種類があります。

  • SeriesRule(シリーズルール)
  • ListRule(リストルール)
  • DetailRule(詳細ルール)
  • GalleryRule(ギャラリールール)

 

SeriesRule(シリーズルール)/ListRule(リストルール)

SeriesRuleは主にListRuleのトップレベルページのルールに適用されます。

ListRuleは主に一般的なリストページ、タグリンクページ、検索ページなどのリストページに適用されます。

 

このSeriesRule(シリーズルール)/ListRule(リストルール)には以下のセレクタが存在します。

Item(アイテム)

このItemセレクタでリスト的に取得したい要素を指定します。

例えば、Webサイトの最新記事ページがあり、日付順に記事が並んで表示されているとします。
このItemセレクタではそれらの記事ブロックが該当するように要素を指定する必要があります。

要素を取得した後、各Itemに含まれる記事のタイトル・著者・更新時間・評価などの詳細情報を取得するにはどうすればいいでしょうか。

次のセレクタを使用してそれぞれの情報を抜き出すことができます。

  • ID Code
  • Title
  • Cover
  • Cover Width
  • Cover Height
  • Large Image
  • Category
  • Author
  • Uploader
  • Release Date
  • Update Date
  • Rating
  • Likes
  • Views
  • Total ImagesDuration

 

また、これらのセレクタにて抜き出すことができる情報はItemセレクタにて取得した要素の情報に限定されます。

ID Code

各Item一意の識別子。
ID Codeセレクタにて抽出した文字列は「{idCode:}」プレースホルダーを使用して置き換えることができます。

 

以降のセレクタは必須ではありません。
必要な場合のみ使用します。

Title

アイテムのタイトル。

 

Cover

アイテムの表紙画像URL。

 

Cover Width

アイテムの表紙画像の幅。

 

Cover Height

アイテムの表紙画像の高さ。

 

Large Image

アイテムの大きい表紙画像のURL。

 

Category

アイテムのカテゴリ。

 

Author

アイテムの著者。

 

Uploader

アイテムのアップロード者。

 

Release Date

アイテムの公開日時。

 

Update Date

アイテムの更新日時。

 

Rating

アイテムの評価。

 

Likes

アイテムのライク数。

 

Views

アイテムの表示数。

 

Total Images Duration

画像の合計数。

このパラメータが設定され、後述するDetailRule内のPictureRuleのURLにてプレースホルダ「{page:}」が使用されている場合、Yealicoはページングルールに従って全ての画像のURLを自動的に取得します。

 

DetailRule

DetailRuleは主に詳細ページに使用されます。
通常、ListRule内の項目を選択するとリンク先のページを参照します。

DetailRule内にもTitle/Cover/Category/Author/Uploader/Release Date/Update Date/Rating/Likes/Total Images Durationが存在しますが、これらはListRuleで説明されているものと同じです。

さらにDetailRuleには、TagRuleやPictureRule、ChapterRuleやCommentRuleなどのいくつかのミニルールも含まれています。

 

Second Level Page Url

一部のサイトにはリストページから詳細ページへ遷移する際に2アクション行う必要があったりします。

リストページ→何らかのページ→詳細ページ

 

Second Level Page Urlを設定すると、PictureRuleはSecond Level Page Urlに対応するページで動作します。

 

PictureRule

詳細ページですべての画像データを取得します。
PictureRuleには以下のセレクタが含まれています。

  • 「Item」
    このItemセレクタでタグの要素を指定します。
  • 「Thumbnail」
    画像のサムネイルURL
  • 「URL」
    画像のURL。
    Linkセレクタが定義されている場合、LinkのURL先でURLセレクタが実行されます。
  • 「Link」
    画像を取得するためのURL

 

TagRule

詳細ページですべてのタグデータを取得します。
TagRuleには以下のセレクタが含まれています。

  • 「Item」
    このItemセレクタで全てのタグを含む要素を指定します。
    以降の4つのセレクタはこのItemセレクタにて取得した要素の情報に限定されます。
  • 「Name」
    タグの名前
  • 「URL」
    タグのURL

ChapterRule

詳細ページですべての章データを取得します。
ChapterRuleには次のセレクタが含まれています。

  • 「Item」
    このItemセレクタで全ての章を含む要素を指定します。
    以降の4つのセレクタはこのItemセレクタにて取得した要素の情報に限定されます。
  • 「ID Code」
    章の一意の識別子。
    このID CodeはListRuleのID Codeと区別する必要があります。
    章のID CodeはURLパターンの「{cidCode:}」プレースホルダーを使用して置き換えることができます。
  • 「Title」
    章のタイトル
  • 「Datetime」
    章の日時
  • 「URL」
    章のページリンクURL

 

VideoRule

詳細ページですべての動画データを取得します。
VideoRuleには次のセレクタが含まれています。

  • 「Item」
    このItemセレクタで全ての動画を含む要素を指定します。
    以降の4つのセレクタはこのItemセレクタにて取得した要素の情報に限定されます。
  • 「Title」
    動画のタイトル
  • 「Cover」
    動画のカバー画像URL
  • 「URL」
    動画のURL

 

CommentRule

詳細ページですべてのコメントデータを取得します。
CommentRuleには次のセレクタが含まれています。

  • 「Item」
    このItemセレクタで全ての動画を含む要素を指定します。
    以降の4つのセレクタはこのItemセレクタにて取得した要素の情報に限定されます。
  • 「Avatar」
    アバターの画像URL
  • 「Username」
    コメントのユーザー名
  • 「Content」
    コメントの内容
  • 「Datetime」
    コメントの日付

 

GalleryRule

GalleryRuleは主に画像閲覧ページに使用されます。
また、GalleryRuleにはミニルールVideoRuleが存在します。

GalleryRuleには次のセレクタが含まれています。

  • 「Item」
    このItemセレクタで全ての画像URLを含む要素を指定します。
    以降の4つのセレクタはこのItemセレクタにて取得した要素の情報に限定されます。
  • 「Image URL」
    画像URL
  • 「Total Images」
    画像の総枚数
  • 「Total Pages」
    画像閲覧ページの総ページ数

VideoRule

DetailRuleのVideoRuleと同じ。

 

サイト

サイトは、サイトルール(siterule)の最外装として、サイトの基本設定・ページ設定、さまざまなページの既定のURLパターン、ページルールを含んでいます。

サイトには次のパラメータが含まれています。

 

SiteName

サイトの名前

 

Series Url/Index Url/Detail Url/Search Url

各ページのデフォルトURLを定義します。

Series Urlは主にタグページなどに使用されます。
Index Urlは一覧ページに使用されます。
Detail Urlは詳細ページに使用されます。
Search Urlは検索に使用されます。

これらのURLには以下のプレースホルダーを使用することができます。

{page:開始ページ番号:増分ページ数}

 

例えば、{page:1:1}はページング開始ページが1で、次のページへ進む際に1が加算されていくことを示します。

また、増分ページ番号が1の場合は「{page:1}」のように省略することができます。

以下のように使用できます。

https://example.com/?page={page:1}

 

また、最初のページにページング情報が必要のない場合は次のプレースホルダーを使用できます。

{pageFormat:{page:開始ページ番号:増分ページ数}}

 

ListRule内で取得したID CodeをURLに含めたい場合は「{idCode:}」を使用できます。
主にDetailUrlで使用します。

ChapterRule内で取得したID CodeをURLに含めたい場合は「{cidCode:}」を使用できます。
主にGalleryUrlで使用します。

検索URLに入力したキーワードを含める場合は「{keyrowd:}」を使用できます。

 

Login Url

ログインページのURL。

 

Series Display Mode/Index Display Mode/Search Display Mode

リストページのデフォルトの表示モードを設定します。
以下の値を設定できます。

  • Text
  • Table
  • Collection
  • Waterfall
  • Tag

Waterfallは、ListRuleでCoverWidthとCoverHeightを取得している必要があります。
もし、取得していなかった場合は自動的にCollectionに変更されます。

 

Thr Order Of Chapters On The Original Page

チャプターの順番(昇順/降順)を設定します。

 

Flags

以下のフラグを使用することで、サイトの詳細設定が可能です。

  • 「loginRequired」
    ログインを強制化できます。
  • 「repeatedThumbnail」
    取得したサムネイル画像を通常の画像として使用します。
  • 「ignoreDetail」
    詳細ページを無視し、一覧ページから直接ギャラリーページへ移動します。
  • 「jsNeededIndex」,「 jsNeededDetail」,「 jsNeededGallery」, 「jsNeededSearch」, 「jsNeededPhotoAlbum」,「 jsNeededAll」
    それぞれのページ情報を取得する際に、Javascriptを実行してから取得するようにします。
  • 「postSearch」, 「postIndex」, 「postDetail」, 「postGallery」, 「postPhotoAlbum」, 「postAll」, 「postTagLink」
    それぞれのページ情報を取得する際にGETではなくPOSTメソッドを使用します。
  • 「big5CharsetIndex」, 「big5CharsetDetail」, 「big5CharsetGallery」, 「big5CharsetSearch」, 「gbkCharsetIndex」, 「gbkCharsetDetail」, 「gbkCharsetGallery」, 「gbkCharsetSearch」
    ページの文字セットを設定します。
  • 「userAgentMobile」
    ページ情報を取得する際にモバイルアクセスをシミュレートします。

 

Version

バージョン情報を設定できます。

 

さいごに

後日、適当なサイトを使用して実際にサイトルールを作成するチュートリアルを作る予定です。

多分、そっちを見た方がわかりやすいです。

 

では、次の記事でお会いしましょう。

管理人がオススメするお得な情報

1,000円→無料

登録時にもらえる1000円分のポイントで毎日オリパが引ける。

課金するとさらにお得な損しないオリパも引けるので激アツ!!

 

3,000円→無料

AudibleはAmazonが出している本を聴くサービス。

作業をしながら本を読む(聴く)事が出来るので、効率良く情報のインプットが可能に。

 

1,960円→99円980円→無料

漫画・小説・雑誌などが読み放題のKindleUnlimited。

即解約しても、期間中は利用できるので心配な方は即解約でもOK。