pageElement | //div[@class='article-body__main']/*[not(child::figure)] |
---|---|
title | //article[@class='article-body']/h1 |
waitSecondInHeadless | |
subtitle | |
nextButton | |
firstPageLink | |
firstPageButton | |
memo | |
isNeedHeadless | |
nextLink | |
url | ^https://ddnavi\.com/[^/]+/[0-9]+/[^/]+/ |
tag | //div[contains(@class,'article-block')]/div[@class='article-relatedword']/ul/li/a[contains(@href,'/tag/') and @rel='tag'] |
author | |
injectStyle | |
exampleUrl | https://ddnavi.com/interview/686198/a/ |
Database: ことせかいWebページ読み込み用情報
ことせかい という読み上げアプリで利用するデータです。
Webで読める小説を取り込むために、文書の場所や次のページへのlinkなどをさすxpathを記述します。
幾つかの項目はAutopagerizeとほぼ同じ意味です。
ことせかい については以下のURLを参照してください。
http://limura.github.io/NovelSpeaker/
以下、個々の属性についての概ねの方針を書いておきます。
url
対象のURLしてヒットする正規表現を書きます。
pageElement
読み上げ対象となる文字列が含まれるエレメントを取り出すxpathを書きます。複数hitするようなxpathを書いた場合、その全てが取り出されます。
nextLink
次のページに続く場合のaタグを指定するxpathを書きます。複数hitするものを書いた場合、最初のエレメントだけが採用されます。
Autopagerize側では必須属性になっていますが、こちらでは必須ではありません。つまり、Autopagerizeは(その目的から)1ページに全てが入っているサイトは登録されていませんので、そのようなサイトはこちらに登録する必要があります。また、Autopagerize側で主題が違う記事へのnextLinkが指定されているものについて、こちら側のデータベースにnextLinkが無い状態で登録することによって、主題が違う記事を読み込まないようにする事もできなくもありません。
title
本棚に登録される時の名前として採用される文字列を含むエレメントを取り出すためのxpathを書きます。
subtitle
(2017/12/18: 将来的に利用するための項目です)小説の個々の章にあたるサブタイトルを抽出できるエレメントを取り出すためのxpathを書きます。
author
作者名として採用される文字列を含むエレメントを指定するxpathを書きます。
firstPageLink
小説のタイトルページ(本文は含まない)がある場合、そのタイトルページから本文のページに遷移するためのaタグを指定します。複数hitするものを書いた場合、最初のエレメントだけが採用されます。
注意:firstPageLink にヒットした場合、そのURLを読み直して評価をし直すため、無限に firstPageLink の読み込み先を読んで場合があります。そのようにならないように firstPageLink の xpath を指定してください。
tag
その小説等に関する文字列タグが列挙されているエレメントがある場合は指定します。将来的に小説の検索などに使われるタグとして利用されるつもりのものになります。幾つかターゲットを書いてみたところ、どうやら Aレコード でタグへのlinkになっているものが多いようで、その場合は内部にスペースがあるタグなども見受けられましたため、Aレコードのようなエレメント毎に一つのタグとして取り込めないかな?と思っています。ということでできればAレコードそのものを取り出すように(a/text() のような XPath を書いてテキストだけにしないように)して頂ければ幸いです。
isNeedHeadless
JavaScriptが動作した後に本文部分(pageElement)が生成される場合には何らかの値("true"が推奨)を入れます。"false" や "False", "nil", "0", ""(何も入れない) の場合には単にGETリクエストで取得された値について評価して良いという意味になります。
nextButton
isNeedHeadless が有効になっている場合、ここで指定される要素の最初の物を次へのリンクとみなして .click() が実行されます。なお、この要素については xpath ではなく CSS selector で表記します(できればxpathにしたいのですが……)。なお、nextLink よりも nextButton の方が先に評価されます(nextButton と nextLink が両方共に存在する場合は nextButton が優先されます)。
firstPageButton
isNeedHeadless が有効になっている場合、ここで指定される要素の最初の物を最初の本文へのリンクとみなして .click() が実行されます。なお、この要素については xpath ではなく CSS selector で表記します(できればxpathにしたいのですが……)。なお、firstPageLink よりも firstPageButton の方が先に評価されます(firstPageButton と firstPageLink が両方共に存在する場合は firstPageButton が優先されます)。
forceClickButton
(実験的機能なので将来的に変更される可能性があります)isNeedHeadless が有効になっている場合、ここで指定される要素が存在した場合はその要素に対して .click() が実行された後、改めて内容を評価し直します。特定のボタンを押さないと先に進めない場合などに利用します。
waitSecondInHeadless
isNeedHeadless が有効になっている場合、ページが読み込まれたと思われる後、さらにここで指定される数値で指定される秒数待った後にinnerHTMLを評価します。
injectStyle
pageElement で取り出した後のHTMLに対して強制的に適用するstyleを記述します。これは、pageElementで取り出した後のHTMLにはstyleが適用されない(パスが違うのでstyleが適用されないであるとか、pageElementで取り出されたHTMLにはstyleが無いであるとか、styleは別のファイルになっているのでGETリクエスト一回では取り出せないであるといったときに、white-space:pre-wrap; で指定されるようなコンテンツが入っているとHTMLからStringに変換した時に改行周りとかが省略されてしまって悲しいことになるという問題を回避するための物になります。(例えば、pageElement として <div class="content xxx yyy">...</div> が取り出されるのがわかっている場合、"div.content{white-space:pre-wrap;}" といったような値を指定する事を期待しています。
exampleUrl
対象のURLを書きます。後で動作確認などをする時に利用します。複数書く場合は半角スペースで区切ってください。
memo
何らかのメモ書きを残すべきと思った場合は書いておいてください。日本語でOKです。
また、次のページや最初のページを判定するための要素がいくつかあるのでそれらの優先順位を別途書き記しておきます。
優先される順序は
1. forceClickButton
2. nextButton
3. firstPageButton
4. nextLink
5. firstPageLink
の順(数字が若い方が優先)になります。
なお、ことせかい の動作としては、このデータベースとAutopagerizeのデータベースの両方を使ってデータを読み込むように作られています。
動作としては対象のURLについて、まずこちらのデータベースにあるものが優先され、こちらのデータベースに載っていないURLのものについてはAutopagerizeのデータベースを参照することになります。
ですので、Autopagerize側で定義されている情報で十分なものの場合は改めてこちら側のデータベースに登録する必要は無いかもしれません。
Last Update: 2024-03-21T13:33:29+09:00 History
Item List
-
ダ・ヴィンチ ニュース 2020-10-18T18:03:46+09:00
last update: 2020-10-18T18:03:46+09:00
-
CREATORS STATION 2020-10-14T18:55:20+09:00
title //h2[@class='sgl-Title'] pageElement //div[@class='sgl-Content']/*[not(contains(@class,'sgl-Figure')) and not(@class='profile')] tag //div[@class='sgl-Tag']/ul/li/a[@class='sgl-Tag_Link' and contains(@href,'/tag/')] url ^http://www\.creators-station\.jp/[^/]+/([^/]+/)?\d+ exampleUrl http://www.creators-station.jp/interview/curiousity/100370 last update: 2020-10-14T19:05:57+09:00
-
RETRIP 2020-10-10T19:53:37+09:00
pageElement //div[@class='articleMain']//div[@class='content']/p[@class='contentTopDesc']|//div[@class='articleMain']//div[@class='content']/article/*[not(contains(@class,'expImg'))] title //div[@class='contentTopTitle']/h1/a[contains(@href,'/articles/') and @title] waitSecondInHeadless subtitle nextButton firstPageLink firstPageButton memo isNeedHeadless nextLink //div[@class='paginateWrap']//a[@rel='next' and contains(@href,'?page=') and @class='next'] url ^https://rtrp\.jp/articles/[0-9]+/ tag //div[contains(@class,'tagBottom')]/ul[@article-tag-calc]//a[contains(@href,'/tags/')] author //div[@class='userProfile']//span[@class='userName']/a[@class='userName' and contains(@href,'/users/')] injectStyle exampleUrl https://rtrp.jp/articles/129003/ last update: 2020-10-10T19:53:37+09:00
-
声優グランプリ 2020-10-09T20:12:51+09:00
pageElement //div[@class='entry-content']/*[not(child::iframe) and not(contains(@class,'twitter-tweet')) and not(class='yarpp-related')] title //div[@class='header-thumbnail-title']/h1 waitSecondInHeadless subtitle nextButton firstPageLink firstPageButton memo isNeedHeadless nextLink url ^https://seigura\.com/\?p= tag //div[@class='entry-header-container']//ul[@class='post-tags']/li/a[contains(@href,'/tag/') and @rel='tag'] author injectStyle exampleUrl https://seigura.com/?p=46753&preview=1&_ppp=dc4c7bce9e last update: 2020-10-09T20:12:51+09:00
-
Yahoo! ニュース(article) 2020-10-07T16:03:02+09:00
pageElement //div[contains(@class,'article_body')]/div/*[not(descendant::picture)] title //article/header/h1 waitSecondInHeadless subtitle nextButton firstPageLink firstPageButton memo isNeedHeadless nextLink //div[@class='pagination_body']//li[contains(@class,'pagination_item-next')]/a[contains(@href,'/articles/') and contains(@data-ylk,'next')] url ^https://news\.yahoo\.co\.jp/articles/ tag author injectStyle exampleUrl https://news.yahoo.co.jp/articles/0960757c17deda48910c476937ed4ceb5afde8a5 last update: 2020-10-07T16:03:02+09:00
-
毎日が発見ネット 2020-10-06T17:26:06+09:00
pageElement //div[@class='entryBody']/*[not(descendant::a[contains(@href,'/cms/mt-search.cgi') and @target='_blank']) and not(self::script)] title //article[@id]/div[@class='asset-header']/h1[@itemprop='name'] waitSecondInHeadless subtitle nextButton firstPageLink firstPageButton memo isNeedHeadless nextLink url ^https://mainichigahakken\.net/[^/]+/article/post- tag //div[@class='wrap-PageInnerTag']/ul[@class='tag-list']/li/a[contains(@href,'/cms/mt-search.cgi') and contains(@href,'tag=')] author injectStyle exampleUrl https://mainichigahakken.net/future/article/post-731.php last update: 2020-10-06T17:26:06+09:00
-
ForRide 2020-10-06T16:43:39+09:00
pageElement //section[@class='entry-content']/*[not(self::section) and not(child::*[@class='youtube']) and not(@id='ez-toc-container') and not(child::img) and not(@class='shopinfo')] title //header[@class='post-header']/h1 waitSecondInHeadless subtitle nextButton firstPageLink firstPageButton memo isNeedHeadless nextLink url ^https://forride\.jp/[^/]+/ tag //section[@class='tab']//div[contains(@class,'keyword')]/ul/li/a[contains(@href,'/tag/') and @rel='tag'] author //section[@class='author']/div[@class='description']/h3 injectStyle exampleUrl https://forride.jp/motorcycle/noslisu last update: 2020-10-06T16:43:39+09:00
-
PIXIV FANBOX 2020-10-06T15:40:49+09:00
pageElement //div[@class='DraftEditor-root'] title //title waitSecondInHeadless subtitle nextButton firstPageLink firstPageButton memo isNeedHeadless nextLink url ^https://[^./]+\.fanbox.cc/posts/ tag //div[preceding-sibling::article]/a[contains(@href,'/tags/')] author //a[@href='/plans']/button/div/span/div injectStyle exampleUrl https://akzw.fanbox.cc/posts/1471939 last update: 2020-10-06T15:40:49+09:00
-
Buzz Plus News 2020-10-06T12:53:10+09:00
pageElement //div[@id='sentences']/*[not(descendant::img) and not(@class='ad-desktop-w') and not(contains(@class,'youtube')) and not(@class='info-buzzplus')] title //div[@id='article-title']/h1 waitSecondInHeadless subtitle nextButton firstPageLink firstPageButton memo isNeedHeadless nextLink url ^https://buzz-plus\.com/article/[0-9]+/[0-9]+/[0-9]+/ tag //div[contains(@class,'post-tag-list')]/a[contains(@href,'/buzz-plus.com/tag/') and @rel='tag'] author //div[@class='writer-info']//a[contains(@href,'/author/')] injectStyle exampleUrl https://buzz-plus.com/article/2020/10/05/alien5-start-again-news/ last update: 2020-10-06T12:53:10+09:00
-
Amebaブログ 2020-10-05T14:56:49+09:00
pageElement //div[@id='entryBody'] title //h1[@class='skin-entryTitle'] waitSecondInHeadless subtitle nextButton firstPageLink firstPageButton memo isNeedHeadless nextLink url ^https://ameblo\.jp/[^/]+/entry-[0-9]+\.html tag //dd/a[contains(@href,'/theme-') and @rel='tag'] author //div[contains(@class,'skin-profile')]//a[contains(@href,'profile.ameba.jp')] injectStyle exampleUrl https://ameblo.jp/yoshiko-sakakibara/entry-12629209284.html last update: 2020-10-05T14:56:49+09:00
-
zenn 2020-09-27T20:30:39+09:00
title //h1[contains(@class,'ArticleHeader_title')] pageElement //section//div[contains(@class,'Container_default') and contains(@class,'Container_common')]/div[not(contains(@class,'View_topics')) and not(@id='share') and not(contains(@class,'ReceivedBadgeShowcase'))] tag //article//div[contains(@class,'View_topics')]/a[contains(@class,'View_topicLink')]/div[contains(@class,'View_topicName')] url ^https://zenn\.dev/[^/]+/articles/ exampleUrl https://zenn.dev/ymrl/articles/ec72de6f18fe04a28127 https://zenn.dev/qnighy/articles/64145f6ff849e5 author //aside[contains(@class,'View_authorInfo')]//div[contains(@class,'ProfileCard_name')]/a[contains(@class,'ProfileCard') and @href] last update: 2023-01-04T13:22:16+09:00
-
和楽 2020-09-27T07:33:38+09:00
title //div[contains(@class,'article-header-area')]/h1 pageElement //div[@class='article-content']/*[not(self::figcaption) and not(self::div[@itemprop='author']) and not(self::div[@class='sns-share-box'])] tag //div[contains(@class,'article-header-area')]//div[@class='article-author']/a/div[contains(@class,'category')] url ^https://intojapanwaraku\.com/[^/]+/\d+/ exampleUrl https://intojapanwaraku.com/travel/122476/ author //div[contains(@class,'authorname')]/a[contains(@href,'https://intojapanwaraku.com/author/')]/span[@itemprop='name'] last update: 2020-09-27T07:45:08+09:00
-
大紀元 EPOCH TIMES 2020-09-27T07:22:09+09:00
pageElement //article/div[@class='page_content'] title //h1[@class='page_title'] waitSecondInHeadless subtitle nextButton firstPageLink firstPageButton memo isNeedHeadless nextLink url ^https://www\.epochtimes\.jp/p/ tag author injectStyle exampleUrl https://www.epochtimes.jp/p/2020/09/62683.html last update: 2020-09-27T07:22:09+09:00
-
中日新聞 2020-09-26T19:24:23+09:00
pageElement //div[@class='content-area']//div[@class='block' and not(child::div[@class='clear'])] title //main//h1[@class='hdg'] waitSecondInHeadless subtitle nextButton firstPageLink firstPageButton memo isNeedHeadless nextLink url ^https://www\.chunichi\.co\.jp/article/ tag author injectStyle exampleUrl https://www.chunichi.co.jp/article/127041 last update: 2020-09-26T19:24:23+09:00
-
NATIONAL GEOGRAPHIC 2020-09-23T19:29:23+09:00
title //div[@class='articleTitleBox']/h1 pageElement //div[@class='articleInner']/*[not(@class='topPageNav') and not(@class='bpbox_center') and not(@class='recommendBox') and not(@class='btmPageNav') and not(@class='bpimage_right')] firstPageLink //div[@id='authorKijiList']//ul/li/p[@class='title']/a memo 連載記事と単発の記事があるので注意 nextLink //div[@class='pageNav']//a[@class='nextPage']|//div[@id='pagePrevNextNaviBottom']/a[@class='next'] url ^https://natgeo\.nikkeibp\.co\.jp/[^/]+/[^/]+/ exampleUrl https://natgeo.nikkeibp.co.jp/nng/article/20140623/403966/ https://natgeo.nikkeibp.co.jp/atcl/news/17/062700244/ last update: 2020-09-23T19:31:58+09:00
-
ソレドコ 2020-09-18T15:10:16+09:00
title //h1[contains(@class,'entry-title')]/a[contains(@href,'/entry/')] pageElement //div[@class='entry-content']/*[not(self::div and child::img) and not(self::footer) and not(child::a[@target='_blank'])] tag //div[contains(@class,'entry-categories')]/a[contains(@href,'/archive/category/')] url ^https://srdk\.rakuten\.jp/entry/ exampleUrl https://srdk.rakuten.jp/entry/2020/09/18/103000 last update: 2021-09-09T09:26:34+09:00
-
Bloomberg jp news article 2020-09-18T14:06:26+09:00
pageElement //div[contains(@class,'body-columns')]/div[contains(@class,'body-copy')]/*[not(child::a[contains(@href,'/join/')])] title //h1[contains(@class,'lede-text-only__hed')] waitSecondInHeadless subtitle nextButton firstPageLink firstPageButton memo isNeedHeadless nextLink url ^https://www\.bloomberg\.co\.jp/news/articles/ tag author //address injectStyle exampleUrl https://www.bloomberg.co.jp/news/articles/2020-09-17/QGTJFFT1UM1301 last update: 2020-09-18T14:06:26+09:00
-
moneyforward articles 2020-09-15T05:31:51+09:00
title //div[@class='article-detail']//h1 pageElement //div[contains(@class,'article-body')]/section[contains(@class,'mp-article-body')] nextLink //div[@class='next-caption-box']/a[contains(@href,'/articles/') and @class='next-caption'] url ^https://media\.moneyforward\.com/articles/ exampleUrl https://media.moneyforward.com/articles/5296 author //*[@class='author-details-title']//*[@class='author-details-name'] last update: 2020-09-15T05:35:42+09:00
-
BLove 2020-09-12T22:51:43+09:00
pageElement //*[contains(@class,'fs-novel-section') and not(contains(@class,'fs-novel-section-title')) and not(contains(@class,'fs-novel-section-ad'))] title //a[contains(@class,'fs-novel-title') and contains(@href,'/novel/')] waitSecondInHeadless subtitle //h2[@class='fs-novel-section-title'] nextButton firstPageLink //ul[contains(@class,'fs-novel') and descendant::h2[@class='fs-novel-title']]//a[contains(@href,'/novel/')] firstPageButton memo isNeedHeadless nextLink //a[contains(@href,'/novel/') and @data-icon='arrow-r'] url ^https://blove\.jp/novel/ tag //div[@class='tag-item']/a[contains(@href,'/tag/')] author //div[@class='fs-novel-author']/a[contains(@href,'/user/')] injectStyle exampleUrl https://blove.jp/novel/210770-%E8%81%96%E5%89%A3%E3%82%92%E6%8A%9C%E3%81%8F/ last update: 2020-09-12T22:51:43+09:00
-
d-love 2020-09-12T22:35:27+09:00
pageElement //*[contains(@class,'fs-novel-section')] title //title waitSecondInHeadless subtitle nextButton firstPageLink //a[contains(@href,'/novel/') and contains(text(),'小説を読む')] firstPageButton memo isNeedHeadless nextLink //a[@data-icon='arrow-r' and contains(@href,'/novel/')] url ^https://d-love\.net/novel/ tag //a[contains(@href,'/tag/') and not(contains(@href,'/update/'))] author //a[contains(@href,'/user/')] injectStyle exampleUrl last update: 2020-09-12T22:35:27+09:00
-
nanos の小説部分 2020-09-12T22:17:40+09:00
pageElement //div[@id='layout']/text()|//div[@id='layout']/*[not(self::center)] title //title waitSecondInHeadless subtitle nextButton firstPageLink firstPageButton memo isNeedHeadless nextLink //div[@id='layout']//a[contains(@href,'/novel/') and @accesskey='#'] url ^https?://nanos\.jp/[^/]+/novel/ tag author injectStyle exampleUrl http://nanos.jp/suzukiakane/novel/2/?ParentDataID=2 http://nanos.jp/suzukiakane/novel/2/4/ last update: 2020-09-12T22:17:40+09:00
-
IndieGamesJp.dev 2020-09-11T01:15:19+09:00
pageElement //div[@class='entry-inner']/*[not(contains(@class,'addtoany_share_save_container')) and not(self::figure) and not(self::nav) and not(contains(@class,'has-text-align-center'))] title //article/div[contains(@class,'post-inner')]/h1[contains(@class,'post-title')] waitSecondInHeadless subtitle nextButton firstPageLink firstPageButton memo isNeedHeadless nextLink //a[@class='nextpostslink'] url ^https://indiegamesjp\.dev/\?p= tag //p[@class='post-tags']/a[@rel='tag' and contains(@href,'/?tag=')] author //div[@class='author-bio']/p[@class='bio-name'] injectStyle exampleUrl last update: 2020-09-11T01:15:19+09:00
-
wizLanScope 2020-09-05T16:16:06+09:00
pageElement //div[contains(@class,'single-article__content')] title //h1[contains(@class,'single-article__title')] waitSecondInHeadless subtitle nextButton firstPageLink firstPageButton memo isNeedHeadless nextLink url ^https://www\.lanscope\.jp/[^/]*/ tag //ul[contains(@class,'c-tag-list')]/li/a[contains(@href,'/tags/')] author //section[@class='single-writer']//h2[contains(@class,'single-writer__title')] injectStyle exampleUrl https://www.lanscope.jp/trend/16983/ last update: 2020-09-05T16:16:06+09:00
-
topics.nintendo 2020-09-05T04:49:57+09:00
pageElement //div[@class='topics-articleBody'] title //h1[@class='topics-articleHead__main'] waitSecondInHeadless subtitle nextButton firstPageLink firstPageButton memo isNeedHeadless nextLink url ^https://topics\.nintendo\.co\.jp/article/ tag author //div[@class='topics-authorArea__text']/text() injectStyle exampleUrl https://topics.nintendo.co.jp/article/e115dc48-07de-4a31-aed1-ad65b3cbeb64 last update: 2020-09-05T04:49:57+09:00
-
ハーメルン携帯版 2020-08-30T23:14:24+09:00
title //table//tbody/tr[@bgcolor and not(@bgcolor='white')]//center pageElement //body/text()|//body/*[not(self::table) and not(self::center) and not(self::img) and not(self::font)] subtitle //body/center[not(child::*)] firstPageLink //a[contains(@href,'/?mode=ss_view') and preceding-sibling::hr] nextLink //a[contains(@href,'/?mode=ss_view') and @accesskey='1'] url ^https?://m\.syosetu\.org/\?mode=ss exampleUrl http://m.syosetu.org/?mode=ss_view&nid=232554&volume=2&guid=ON author //center/a[contains(@href,'mode=user') and contains(@href,'uid=')] last update: 2022-11-01T16:50:38+09:00
-
coinpost 2020-08-30T13:26:07+09:00
pageElement //div[@id='the-content'] title //h1[@class='entry-title'] waitSecondInHeadless subtitle nextButton firstPageLink firstPageButton memo isNeedHeadless nextLink url ^https://coinpost\.jp/\?p= tag //div[@id='breadcrumb']/div[not(@class='breadcrumb-home')]//a[contains(@href,'/?cat=')] author //p[@class='post-meta']/span[@class='post-auther'] injectStyle exampleUrl https://coinpost.jp/?p=178852 last update: 2020-08-30T13:26:07+09:00
-
ことせかい topics 2020-08-26T15:48:20+09:00
pageElement //section[@class='autopagerize_page_element'] title //title waitSecondInHeadless subtitle //section[@class='main_content']/h3 nextButton firstPageLink //section[@id='main_content']/ul/li/a[contains(@href,'.html')] firstPageButton memo isNeedHeadless nextLink //a[@rel='NEXT'] url ^https://limura\.github\.io/NovelSpeaker/topics tag author injectStyle exampleUrl https://limura.github.io/NovelSpeaker/topics/00001.html last update: 2020-08-26T15:48:20+09:00
-
魔法のiらんど 2020-08-13T19:37:10+09:00
waitSecondInHeadless 4.0 title //main[contains(@class,'main')]//div[contains(@class,'infoPrimary')]/h1|//section[contains(@class,'content')]//h1 pageElement //section[contains(@class,'content')]/div subtitle //section[contains(@class,'content')]//div[contains(@class,'chapters')]/h2 firstPageLink //main//div[contains(@class,'footer')]//div[contains(@class,'readButton')]/a[contains(@href,'/works/')] isNeedHeadless true nextLink //div[contains(@class,'next')]//nav[contains(@class,'next')]/a[contains(@href,'/works/') and contains(@href,'#')] tag //ul[contains(@class,'tagLabels')]/li/a[contains(@href,'/search?situations=')] url ^https://maho\.jp/works/\d+ exampleUrl https://maho.jp/works/15591074771453176453 author //div[contains(@class,'WorkAuthorProfile')]//div[contains(@class,'profile')]/a[contains(@href,'/users/')]/h3 last update: 2021-04-21T16:27:39+09:00
-
TABI LABO 2020-07-13T02:00:03+09:00
title //article/div[@class='contents-container']/h1 pageElement //article//div[@class='contents'] tag //div[contains(@class,'article-footer')]//li/a[@data-id='article_tag' and contains(@href,'/tag/')] url ^https://tabi-labo\.com/\d+/ exampleUrl https://tabi-labo.com/296235/ubereats-interview author //div[@class='author-box']/text() last update: 2020-07-13T02:01:14+09:00
-
FRONTROW 2020-06-20T10:06:23+09:00
pageElement //div[@class='content-body']/div[@class='content-summary']|//div[@class='content-body']/div[contains(@class,'content-body-body')]/*[self::p or self::h2[@class='article-heading'] or self::div[@class='quotebox']] title //h1[@class='content-title']/a subtitle firstPageLink memo nextLink url ^https://front-row\.jp/_ct/[0-9]+ tag //div[@class='content-tags']/a[contains(@href,'/_tags/')] author exampleUrl https://front-row.jp/_ct/17370720 last update: 2020-06-20T10:06:23+09:00
-
SPOT 2020-06-10T13:42:42+09:00
pageElement //div[@class='entry_main']/*[not(child::img) and not(self::div[@id='toc_container']) and not(child::style)] title //h1[@class='content_title'] subtitle firstPageLink memo nextLink url ^https://travel\.spot-app\.jp/[^/]+/ tag //div[@class='tag_list']//a author //div[@class='writer_info']/a[@class='writer_name'][1] exampleUrl https://travel.spot-app.jp/minamimachida/ last update: 2020-06-10T13:42:42+09:00
-
logmi 2020-06-02T17:58:16+09:00
title //h1[@class='article-header__title'] pageElement //article[@class='article-body']/section[@class='article-section']/*[not(child::*[@role='img']) and not(self::aside) and not(self::div[@class='article-timestamp']) and not(child::bookmark-button) and not(child::a[contains(@href,'/article_images/')])] subtitle //h2[@class='article-header__subtitle'] nextLink //aside[@class='article-aside']//div[contains(@class,'progress')]/a[contains(@href,'/articles/') and not(contains(@class,'is-disabled')) and preceding-sibling::div[contains(@class,'is-active')]] tag //div[@class='tag-list']/a[@class='tag'] url ^https://logmi\.jp/[^/]+/articles/ exampleUrl https://logmi.jp/tech/articles/322911 author //div[@class='speaker-item__name'] last update: 2020-06-11T04:18:21+09:00
-
REUTERS 2020-05-22T18:21:49+09:00
title //h1[contains(@class,'Headline')] pageElement //div[contains(@class,'ArticleBodyWrapper')]/*[contains(@class,'ArticleBody-para')] url ^https://jp\.reuters\.com/article/ exampleUrl https://jp.reuters.com/article/health-coronavirus-japan-frontline-int-idJPKBN22Y0ER author //div[@class='ArticleBodyWrapper']//div[contains(@class,'ArticleBody-byline')]//span[contains(@class,'Byline-author')] last update: 2020-10-22T20:36:33+09:00
-
あかり電化.net 2020-05-18T21:49:05+09:00
pageElement //div[contains(@class,'entry-content') and not(contains(@class,'under-entry-content'))] author title //h1[contains(@class,'entry-title') and @itemprop='headline'] firstPageLink tag exampleUrl https://akaridenka.net/%e3%81%82%e3%82%8a%e3%81%b5%e3%82%8c%e3%81%9f%e8%81%b7%e6%a5%ad%e3%81%a7%e4%b8%96%e7%95%8c%e6%9c%80%e5%bc%b7%e3%80%80%e6%94%be%e9%80%81%e9%96%8b%e5%a7%8b/ subtitle memo url https://akaridenka\.net/[^/]+/ nextLink last update: 2020-05-18T21:49:05+09:00
-
スペースコロニーの小説部分 2020-05-16T08:20:10+09:00
pageElement //div[@class='text'] author title //title firstPageLink tag exampleUrl http://esupa.xrea.jp/dq/1000000/ subtitle memo url ^https?://esupa\.xrea.jp/[^/]+/[^/]+/ nextLink //div[@class='link']/div[@class='new']/a last update: 2020-05-16T08:20:10+09:00
-
東方奇縁譚 2020-05-04T16:40:19+09:00
pageElement //td[1] firstPageLink //a[contains(@href,'/novel/')] exampleUrl https://kuontenrin.ehoh.net/novel/touhou/001.html memo 個人サイトテスト subtitle //title nextLink //td/a[contains(text(),'次へ')] url ^https://kuontenrin\.ehoh\.net/(novel/touhou/|touhou.html|novel/aseria/|aseria.html) last update: 2020-05-12T18:26:43+09:00
-
Wikipedia (mobile) 2020-04-23T06:04:48+09:00
pageElement //div[contains(@class,'mw-parser-output')]/h2//span[contains(@class,'mw-headline')]|//div[contains(@class,'mw-parser-output')]/section//*[not(ancestor-or-self::node()[contains(@id,'cite_ref')]) and not(ancestor-or-self::node()[contains(@class,'mw-editsection')]) and not(ancestor-or-self::node()[@id='toc']) and not(ancestor-or-self::node()[contains(@class,'vertical-navbox')]) and not(ancestor-or-self::node()[contains(@class,'noprint')]) and not(ancestor-or-self::node()[contains(@class,'reflist')]) and not(ancestor-or-self::node()[contains(@role,'presentation')]) and not(ancestor-or-self::node()[contains(@class,'navbox')]) and not(ancestor-or-self::node()[contains(@class,'catlinks')]) and not(ancestor-or-self::node()[contains(@style,'display:none;')]) and not(ancestor-or-self::node()[contains(@class,'thumbinner')])]/text() author title //h1[@id='section_0'] firstPageLink tag exampleUrl https://ja.m.wikipedia.org/wiki/%E3%82%B2%E3%82%B2%E3%82%B2%E3%81%AE%E9%AC%BC%E5%A4%AA%E9%83%8E%E3%81%AE%E7%99%BB%E5%A0%B4%E3%82%AD%E3%83%A3%E3%83%A9%E3%82%AF%E3%82%BF%E3%83%BC subtitle memo url https://[a-zA-Z]+\.m\.wikipedia\.org/wiki/ nextLink last update: 2020-04-23T06:04:48+09:00
-
Wikipedia 2020-04-23T05:22:24+09:00
pageElement //div[contains(@class,'mw-parser-output')]//*[not(ancestor-or-self::node()[contains(@id,'cite_ref')]) and not(ancestor-or-self::node()[contains(@class,'mw-editsection')]) and not(ancestor-or-self::node()[@id='toc']) and not(ancestor-or-self::node()[contains(@class,'vertical-navbox')]) and not(ancestor-or-self::node()[contains(@class,'noprint')]) and not(ancestor-or-self::node()[contains(@class,'reflist')]) and not(ancestor-or-self::node()[contains(@role,'presentation')]) and not(ancestor-or-self::node()[contains(@class,'navbox')]) and not(ancestor-or-self::node()[contains(@class,'catlinks')]) and not(ancestor-or-self::node()[contains(@style,'display:none;')]) and not(ancestor-or-self::node()[contains(@class,'thumbinner')])]/text() tag //div[@id='mw-normal-catlinks']//ul/li/a title //h1[@id='firstHeading'] exampleUrl https://ja.wikipedia.org/wiki/%E7%8F%BE%E4%BB%A3%E8%B2%A8%E5%B9%A3%E7%90%86%E8%AB%96 url ^https://[a-zA-Z]+\.wikipedia\.org/wiki/ last update: 2020-04-23T05:22:41+09:00
-
ナゾロジー 2020-03-29T11:40:46+09:00
title //main/article//h1[@class='post-head__title'] pageElement //main/article//div[@class='post-lead__contents']|//main/article//div[@class='post-body']//div[contains(@class,'contents')]/*[not(self::figure) and not(child::noscript and child::iframe) and not(descendant::noscript)] nextLink //div[@class='post-pagination__next']/a[contains(@href,'/archives/')] tag //div[@class='post-head__terms']/ul/li/a[contains(@href,'/tag/')]/span url ^https://nazology\.net/archives/ exampleUrl https://nazology.net/archives/74896 author //main/article//div[contains(@class,'post-head')]//div[@class='post-head__author']/a[contains(@href,'/author/')]//span[@class='post-author__name'] last update: 2021-03-01T09:39:01+09:00
-
刺猬猫阅读(wap) 2020-02-05T20:13:55+09:00
title //title url ^https://wap\.ciweimao\.com/(book|chapter)/[0-9]+ tag author pageElement //div[contains(@class,'read-bd')] subtitle //h1[contains(@class,'read-hd')] firstPageLink exampleUrl https://wap.ciweimao.com/chapter/104509581 nextLink //a[@id='J_BtnPageNext' or contains(@class,'J_BtnPageNext')] memo 注: 遅延読み込みしているぽい。www のものと違いこちらはスマートフォン等の小さい画面向けインタフェースになっている。(ので作者名等が表示されていない) last update: 2020-02-05T20:13:55+09:00
-
晋江小说 2020-02-05T19:32:04+09:00
title //td[contains(@class,'noveltitle')]/h1/a[contains(@href,'novelid=')] url ^https?://www\.jjwxc\.net/onebook.php tag author //tbody//td[contains(@class,'noveltitle')]/a[contains(@href,'authorid=')] pageElement //div[contains(@class,'noveltext')] subtitle //div[contains(@class,'noveltext')]//h2 firstPageLink //tr[contains(@itemprop,'chapter')]//span[contains(@itemprop,'headline')]//a[contains(@href,'onebook.php') and contains(@href,'chapterid=')] exampleUrl http://www.jjwxc.net/onebook.php?novelid=15488&chapterid=1 nextLink //tr/td[contains(@class,'novel')]/span/a[contains(child::span/text(),'下一章')] memo last update: 2020-02-05T19:32:04+09:00
-
刺猬猫阅读 2020-02-05T19:31:52+09:00
title //div[contains(@class,'breadcrumb')]/a[contains(@href,'/book/')] url ^https://www\.ciweimao\.com/(book|chapter)/[0-9]+ tag author //div[@id='J_BookCnt']/div[contains(@class,'read-hd')]/p/span/a[contains(@href,'/reader/')] pageElement //div[contains(@class,'read-bd')] subtitle //h3[contains(@class,'chapter')] firstPageLink //ul[contains(@class,'book-chapter-list')]/li/a[contains(@href,'chapter/')] exampleUrl https://www.ciweimao.com/chapter/104509581 nextLink //a[@id='J_BtnPageNext'] memo 注: 遅延読み込みしてるぽい last update: 2020-02-05T19:31:52+09:00
-
黑岩阅读 2020-02-05T19:31:41+09:00
title //title url ^https://w\.heiyan\.com/book/[0-9]*/[0-9]* tag author //meta[contains(@property,'novel:author')]/@content pageElement //div[contains(@class,'page-content')] subtitle //h1[contains(@class,'page-title')]/a[contains(@class,'sm-title')] firstPageLink //div[contains(@class,'block') and contains(@class,'update')]/div[contains(@class,'bd')]//li/a[contains(@href,'/book/')] exampleUrl https://w.heiyan.com/book/95554/3038386 nextLink //div[contains(@class,'next') and contains(@class,'list')]/a[contains(@href,'/book/')] memo last update: 2020-02-05T19:31:41+09:00
-
SF轻小说 2020-02-05T19:31:27+09:00
title //div[contains(@class,'article-wrap')]//a[contains(@href,'/Novel/') and contains(@class,'bold')] url ^https?://book\.sfacg\.com/Novel/[0-9]+/[0-9]+/[0-9]+/ author //div[contains(@class,'article-desc')]/span[contains(text(),'作者:')] firstPageLink //div[contains(@class,'story-catalog')]/div[contains(@class,'catalog-list')]/ul/li/a[contains(@href,'Novel/')]|//div[@id='BasicOperation']/a[contains(@href,'/Novel/') and contains(@href,'/MainIndex/')] subtitle //h1[contains(@class,'article-title')] pageElement //div[contains(@class,'article-content')] exampleUrl http://book.sfacg.com/Novel/258491/383573/3268084/ nextLink //div[@id='pageBtnArea']/a[contains(@class,'next-btn')] last update: 2020-02-05T20:00:15+09:00
-
Twitter.com 2020-01-14T17:35:03+09:00
title //title pageElement //article[not(child::div//*[name()='svg']/*[name()='g']/*[contains(@d, 'M20.75')])]//div[@data-testid='tweet']//a[@role='link' and not(contains(@href,'https://t.co/'))]//div[@dir='auto']//span/span|//article[not(child::div//*[name()='svg']/*[name()='g']/*[contains(@d, 'M20.75')])]//div[@lang and @dir='auto'] url ^https://(mobile.)?twitter.com/ exampleUrl https://twitter.com/JFdoOo5OeAniAIQ/status/1216250707294031874 last update: 2020-06-07T22:53:43+09:00
-
with news 2019-11-07T23:16:18+09:00
firstPageLink exampleUrl https://withnews.jp/article/f0191107000qq000000000000000W07q10701qq000019921A memo tag //li/a[contains(@href,'/articles/keyword/')] nextLink author //li[contains(@class,'name')]/a[contains(@href,'/articles/writer/')] subtitle title //h1[contains(@class,'articleTitle')] url ^https://withnews\.jp/article/ pageElement //article/section/*[contains(@class,'text') or contains(@class,'bottomLine')] last update: 2019-11-07T23:16:18+09:00
-
PixiVision 2019-10-13T23:57:19+09:00
exampleUrl https://www.pixivision.net/ja/a/5100 author //div[contains(@class,'_feature-article-body')]/div[contains(@class,'_feature-article-body__profile')]//div[contains(@class,'profile-contents')]/ul/li[1] title //h1[contains(@class,'am__title')] pageElement //div[@class='_feature-article-body']/*[not(contains(@class,'_feature-article-body__credit')) and not(contains(@class,'_feature-article-body__image')) and not(contains(@class,'_feature-article-body__profile'))] url ^https://www\.pixivision\.net/ja/a/ last update: 2019-10-18T18:03:45+09:00
-
Geekなページ 2019-10-08T14:34:49+09:00
firstPageLink exampleUrl https://www.geekpage.jp/blog/?id=2019-10-7-1 memo tag nextLink author subtitle title //div[contains(@class,'main')]/h1 url ^https://www\.geekpage\.jp/blog/\?id= pageElement //div[contains(@class,'main')]/*[not(self::h1) and not(contains(@class,'row'))] last update: 2019-10-08T14:34:49+09:00
-
RollingStone Japan 2019-10-06T16:11:24+09:00
firstPageLink exampleUrl https://rollingstonejapan.com/articles/detail/32058?n=1&e=32077 memo tag //div[contains(@class,'articleDetailTag')]/ul/li/a nextLink //div[contains(@class,'contBtn')]/a[1] author //p[contains(@class,'name')]/a subtitle title //h1[contains(@class,'tit')] url ^https://rollingstonejapan\.com/articles/detail/[0-9]* pageElement //div[contains(@class,'kizi-honbun')] last update: 2019-10-06T16:11:24+09:00
-
ポケモン小説スクエア 2019-10-01T11:04:37+09:00
exampleUrl https://pokemon.sorakaze.info/shows/story/12249 https://pokemon.sorakaze.info/shows/shortstory/2243/ firstPageLink //div[contains(@class,'stories-table')]//div[contains(@class,'text')]/a|//div[@id='main-novel']/section/p/a[contains(@href,'/shows/shortstory/')] author //div[@id='author']/a nextLink //div[@id='novel-navigation']/a[contains(text(),'次へ進む')] subtitle //div[@id='main-single']/h1[1] title //div[contains(@class,'bread-crumb')]/ul/li/a[contains(@href,'/shows/index/')][1] pageElement //div[@id='novel-body' or @id='novel-foreword'] url ^https://pokemon\.sorakaze\.info/shows/(index|story|shortstory)/ last update: 2019-10-02T11:39:10+09:00