Database: ことせかいWebページ読み込み用情報
Item Details: pixiv小説
url | ^https://(www|touch)\.pixiv\.net/novel/(show\.php|series/\d+) |
---|---|
pageElement | //main/div/p |
nextLink | //aside/section/nav//a |
title | //main/section//h1 |
subtitle | //main/section//main//h2 |
author | //main/section//a[@class and contains(@href,'/users/') and not(contains(@href,'/novels')) and preceding-sibling::a] |
firstPageLink | //main/section//div[preceding-sibling::nav]//a[contains(@href,'/novel/show.php?id=')] |
tag | //main/section//footer//li//a[contains(@href,'/tags/')] |
isNeedHeadless | true |
nextButton | div[direction="next"] button |
firstPageButton | div#spa-contents div.novel-details-view button |
waitSecondInHeadless | 2.0 |
injectStyle | main{white-space:pre-wrap;}; |
exampleUrl | https://www.pixiv.net/novel/show.php?id=8919908#1 |
memo | pixiv小説の個々の小説は通常(?)とはちょっと違う形でカテゴライズされているため、かなりややこしい SiteInfo になっているため、メモを残す。 まず、isNeedHeadless は true である必要がある。これは本文がHTML上に現れるためには JavaScript が動作する必要があるためである。 次に、pixiv小説におけるページは「>次へ」といった感じのボタン(<a> ではないのでJavaScriptで .click() する必要がある)を押してめくるのであるが、この時URLは変化しない(正確に言うと # より後ろの部分が変化する)。 そのため、まず最初に検索すべきはこの「>次へ」のボタンである。 これは nextButton に CSS selector を書く事によって行う。 このボタンが確認できるのは例えばこのURLである。 https://www.pixiv.net/novel/show.php?id=8919908#3 次に、「>次へ」といったボタンで手繰って行った後に開くべきページについて。 pixiv小説は「シリーズ」という物で続きの話が投稿される場合がある。 このシリーズの次の話を手繰るのは <a> で行けそうであるので nextLink を用いる(余談だがシリーズの次の話はIDが異なる。どうやらそれぞれの小説は個々に独立していて、シリーズとして関連性を与えているという概念らしい)。 このシリーズの次の話へのリンクが確認できるのは例えばこのURLである。 https://www.pixiv.net/novel/show.php?id=13381749 この中の、「#41 強くてニューゲームは都市伝説。上手に「待て」が出来るかな?」というボタンがそれである。 次に、firstPageLink と firstPageButton について。 pixiv小説では個々の小説のタイトルページ(表紙?)も存在する。 これは例えば https://www.pixiv.net/novel/show.php?id=8919908 といった物がそれに当たるのであるが、これはブラウザで開くと勝手に最初のページを開くような動作を取ることがあるため、この挙動に当たってしまうとタイトルページの解析はできない。 また、シリーズの一覧ページというものもあり、こちらは例えばこのURL https://www.pixiv.net/novel/series/1270584 で確認できる。 このシリーズ一覧での最初の小説へのリンクについては firstPageButton で対応する。 |
History
- Update 2023-10-07T12:59:58+09:00 by limura(openid-provider-appspot-com)
- Update 2022-11-11T02:07:22+09:00 by limura
- Update 2022-11-10T22:12:17+09:00 by limura
- Update 2022-11-10T21:35:25+09:00 by limura
- Update 2022-08-16T16:04:55+09:00 by limura
- Update 2021-07-30T19:34:45+09:00 by limura
- Update 2021-07-30T18:52:54+09:00 by limura
- Update 2021-06-03T15:17:39+09:00 by limura
- Update 2021-03-13T21:35:55+09:00 by limura
- Update 2021-02-28T01:35:29+09:00 by limura
- Update 2021-02-28T01:14:01+09:00 by limura
- Update 2021-02-28T01:08:00+09:00 by limura
- Update 2021-02-28T00:55:37+09:00 by limura
- Update 2021-02-28T00:53:56+09:00 by limura
- Update 2021-02-16T22:24:20+09:00 by limura
- Update 2021-02-02T23:20:02+09:00 by limura
- Update 2021-02-02T23:15:35+09:00 by limura
- Update 2021-01-16T21:53:35+09:00 by limura
- Update 2021-01-16T21:36:23+09:00 by limura
- Update 2021-01-16T21:28:18+09:00 by limura
- Update 2020-12-22T00:27:19+09:00 by limura
- Update 2020-12-22T00:22:58+09:00 by limura
- Update 2020-12-21T23:47:33+09:00 by limura
- Update 2020-12-21T23:43:33+09:00 by limura
- Update 2020-12-05T06:41:42+09:00 by limura
- Update 2020-12-05T05:19:42+09:00 by limura
- Update 2020-12-05T04:37:18+09:00 by limura
- Update 2020-12-05T04:27:43+09:00 by limura
- Update 2020-08-26T16:17:47+09:00 by limura
- Update 2020-08-26T10:04:44+09:00 by limura
- Update 2020-08-26T09:28:19+09:00 by limura
- Update 2020-08-26T08:32:58+09:00 by limura
- Update 2019-06-12T15:15:28+09:00 by limura
- Update 2018-07-19T16:21:55+09:00 by limura
- Update 2017-12-01T13:40:38+09:00 by limura
- Update 2017-12-01T13:40:16+09:00 by limura
- Update 2017-12-01T13:37:28+09:00 by limura
- Update 2017-12-01T13:37:01+09:00 by limura
- Update 2017-12-01T13:29:26+09:00 by limura
- Update 2017-12-01T13:19:42+09:00 by limura
- Update 2017-11-26T10:54:23+09:00 by limura
- Create 2017-11-20T16:19:11+09:00 by limura