高度なカスタマイズ
| Pagetualが役に立ったと感じ、余裕があれば、その開発資金を支援するための寄付をいただけると大変ありがたいです。もし難しければ、気にせず楽しんでください!💞 | ||||
|---|---|---|---|---|
PayPal | Ko-fi | 愛發電 | ||
| Join 💬Discord | ||||
| Follow 🕊️twitter | ||||
| Send 📧E-Mail | ||||
| Made with ❤️ by Hoothin | ||||
[
{
"name":"yande",
"url":"^https://yande-demo\\.re/",
"pageElement":"ul#post-list-posts>li",
"nextLink":"a.next_page",
"css":".javascript-hide {display: inline-block !important;}"
},
{
"name": "so.3dm",
"url": "^https://so\\.3dmgame-demo\\.com",
"pageElement": "div.content > div.search_wrap > div.search_lis",
"action": 1
},
{
"name":"xxgame",
"url":"^http://www\\.xxgame-demo\\.net/chinese",
"pageElement":"div.layui-row>div.layui-col-md4:not(div:nth-child(5),div:nth-child(6),div:nth-child(7))",
"nextLinkByUrl":[
"(http://www\\.xxgame-demo\\.net/chinese/?)(?:\\?page=|$)(\\d*)",
"$1?page={$2+1}"
]
}
]
name
対象サイトの名前
"name": "Site name"
author
このルールの作成者
"author": "Hoothin"
example
このルールのURLの例
"example": "https://abc.com"
url
対象サイトのURLの正規表現
"url": "^https://abc\\.com/\\d+"
pinUrl
次へのリンクやページ要素が存在しない場合があるため、これをtrueに設定すると、要素をインテリジェントなルールで探すのではなく、URLだけでルールを固定できます。
"pinUrl": true
enable
0はすべて一致したときにアクションを停止することを意味します。
"enable": 0
include
含める必要がある要素のセレクターまたはxpath
"include": "div.content"
exclude
含めてはならない要素のセレクターまたはxpath
"exclude": "div.content"
wait
URLがサイトと一致することが確実な場合に、ページが準備できるまで待つ時間。ページが準備できたかどうかをチェックするために、booleanを返すJavaScriptコードも使用できます。
"wait": 500
"wait": "let img=doc.querySelector('ul.list img');return img!=null"
waitElement
"存在する必要がある要素のセレクターまたはxpath(遅延読み込み要素用)"と "存在してはならない要素のセレクターまたはxpath(スクロールして読み込む必要があるローディングプレースホルダー用)"を含む配列["exist", "not exist"]
"waitElement": [
".summary",
"#popular.fade:not(.in)"
]
action
0はURLを読み込んで静的HTMLで挿入することを意味し、1は動的なJavaScriptコードがページに影響を与えるようにiframeで読み込むことを意味し、2は強制的にiframeを最下部に挿入することを意味します。
"action": 1
nextLink
次のページへのリンクのセレクターまたはxpath。0に設定すると無効になります。複数の次のリンクを含む配列にすることもできます。
"nextLink": ".page-next>a"
"nextLink": [
".page1-next>a",
".page2-next>a",
".page3-next>a"
]
nextLinkByUrl
次の要素がない場合、これを使用して現在のURLからhrefを生成できます。[0]は正規表現文字列、[1]は置換文字列、[2]は含める必要がある要素のセレクターまたはxpath、[3]は含めてはならない要素のセレクターまたはxpathを意味します。簡単なコードを評価するために{}を使用できます。
"nextLinkByUrl": [
"(&page=(\\d+))?$",
"&page={$2+1}"
]
"nextLinkByUrl": [
"(&page=(\\d+))?$",
"&page={$2+1}",
".disable>button"
]
nextLinkByJs (doc)
これを使用してJavaScriptコードを評価し、doc(読み込まれた各ページのドキュメント)で次のページのターゲットURLを返します。
"nextLinkByJs": "let n=doc.querySelector('a.curr+a');if(n)return n.href.replace(/^javascript:.*\\((\\d+)'\\);/,'$1_.html');"
stopSign
このサインに一致した場合、次のページの読み込みを停止します。
"stopSign": ["#pagenum", ".disable",
[
"#pagenum",
"(\\d+)"
],
[
"#pagenum",
"\\/(\\d+)"
]
]
pageElement
挿入する必要がある主要なコンテンツのセレクターまたはxpath。複数のページ要素を含む配列にすることもできます。
"pageElement": ".Context>.Article"
pageElementByJs (over)
これを使用してJavaScriptコードを評価し、挿入したい要素を何でも作成します。挿入する要素の配列をコールバックするためにover(eles)が必要です。
"pageElementByJs": "let src=match[1]+match[3];img.onload=()=>{over([img])};img.onerror=e=>{over()};img.src=src;"
replaceElement
新しい要素に置き換えたい要素のセレクターまたはxpath。配列にすることもできます。
"replaceElement": "#page"
"replaceElement": ["#page1", "#page2"]
lazyImgSrc
実際のsrcを対象とする画像の属性。画像のプロパティを削除するために["lazysrc", "removeProp1,removeProp2"]で設定できます。
"lazyImgSrc": "data-cfsrc"
"lazyImgSrc": ["data-lazy-src", "removeProp1,removeProp2"]
css
隠された要素を表示できるようにCSSを追加します。"inIframe:"で始まると、このCSSは次のiframeページでのみ効果を発揮します。
"css": ".card-lazy{display:none}"
insert
挿入したい位置。複数の位置を含む配列にすることもできます。
"insert": "ul#feed-main"
insertPos
1は前に挿入することを意味し、2はターゲットの最下部に単に追加することを意味します。
"insertPos": 2
iframeInit (win, iframe)
iframe内のどのコードよりも速く実行されるJavaScriptコード。
"iframeInit": "win.self=win.top;"
init (doc, win, iframe, click, enter, input)
現在のメインページまたは各iframeで一度だけ実行されるJavaScriptコード。docはメインページまたはiframeのドキュメントです。
"init": "if(doc)doc.querySelector('[data-title=sh]').click();"
pagePre (response)
次のリンクのURLからレスポンスを取得した後に実行されるJavaScriptコード。レスポンスの内容を変更して返すことができます。
"pagePre": "return decodeURI(response).replace(/[\\\\]/g,'')"
pageInit (doc, eles)
doc(読み込まれた各ページのドキュメント)とeles(ルールで見つかった要素)で挿入された各ページで実行されるJavaScriptコード。挿入前に実行されます。onView()のようなイベントをトリガーできます。
"pageInit": "let ops=doc.querySelectorAll('op');[].forEach.call(ops,op=>{img.src=op.value;imgCon.appendChild(img)})"
pageAction (doc, eles)
doc(読み込まれた各ページのドキュメント)とeles(ルールで見つかった要素)で挿入された各ページで実行されるJavaScriptコード。挿入後に実行されます。click()のような機能を追加できます。
"pageAction": "let j=document.querySelector('.lazy');eles.forEach(i=>{i.src=i.dataset.srcset;})"
filter
次のページから挿入された要素をフィルタリングします。
"filter": {
"count": 20,
"words": "spams\\d",
"link": "^https://spams\\.xxx",
"selector": "div#spam"
}
loadMore
「もっと読み込む」ボタンのセレクター
"loadMore": ".loadMore"
sleep
サイトが時間間隔によって制限されている場合に、次のページを読み込む際の待機時間(ミリ秒)
"sleep": 1000
rate
ページによっては次のページの読み込みが遅い場合、2または3に設定できるmulti-windowHeight
"rate": 3
autoLoadNum
ページを開いた後に自動でページをめくるページ数
"autoLoadNum": 5
listenHashChange
これをtrueに設定すると、ハッシュが変更されたときにpagetualが再起動します。
"listenHashChange": true
refreshByClick
サイトが送信ボタンをクリックしてもURLを変更せずにコンテンツをリロードする場合。これをターゲットボタンのセレクターに設定すると、クリック後にpagetualがリセットされます。
"refreshByClick": "#sreach"
pageNum
現在のURLでページ番号を$pで指定します。ページ番号から結果文字列を評価するために{}を使用できます。例:{$p*25+1}
"pageNum": "&start={15*($p-1)}"
pageBar (pageBar)
ページバーを変更するためのJavaScriptコード。0は非表示を意味します。
"pageBar": "pageBar.classList.add('j_thread_list');"
pageBarText
1に設定すると、次のページのドキュメントタイトルがページバーに表示されます。
"pageBarText": 1
autoClick
自動的にクリックしたい要素のCSSセレクターまたはxpath
"autoClick": "#btn-sky"
history
0に設定すると、履歴の書き込みが無効になります。1に設定すると、履歴の書き込みが有効になります。2に設定すると、スプライシング直後に履歴の書き込みが実行されます。一般的なオプションの値に関係なく。
"history": 1
lockScroll
次のページに移動したときにページが自動スクロールしないようにしたい場合は、trueに設定します。
"lockScroll": true
wheel
マウスホイールが回転したときにのみ次のページのアクションが有効になるようにする場合は、trueに設定します。
"wheel": true
fitWidth
pageElementが間違った小さな幅を取得している場合は、falseに設定します。
"fitWidth": false
delay
trueを返すまで次のアクションを遅延させるJavaScriptコード。このプロパティを使用して、遅延読み込みのある完全なページ要素を取得します。
"delay": "return document.querySelector('#feed_pagenation>li.cur').innerText>=curpage"
manualMode
手動モードを有効にするにはtrueに設定します。ページングは停止し、右矢印(または「pagetual.next」イベント)が次のリンクをクリックするようにバインドされます。
"manualMode": true
openInNewTab
すべてのリンクを新しいタブで開くようにするにはtrueに設定し、現在のタブで開くようにするにはfalseに設定します。
"openInNewTab": true
pageElementCss
各ページ要素に設定したいスタイルCSS。
"pageElementCss": "color: red"
initRun
初期化後すぐに実行します。
"initRun": true
sideController
サイドコントローラーのツールバーを表示または非表示にします。
"sideController": true
listenUrlChange
URLが変更された後にスクリプトを更新します。
"listenUrlChange": false
clickMode
ページめくりを停止し、最下部までスクロールした後に次のリンクをクリックします。
"clickMode": true
preloadImages(doc)
ページを分析し、プリロードする必要がある画像のURLの配列を返します。
"preloadImages": "return ['1.jpg']"
child script
サイトがコードの評価にいくつかの制限を設けている場合。windowオブジェクトの下に関数を持つ子スクリプトを作成できます。それらの名前はpagetualをキャメルケースで始める必要があります。例:window.pagetualWait、window.pagetualNextLinkByJs、window.pagetualPageInit、window.pagetualPageAction、window.pagetualInit、window.pagetualPageBarText。
Discord
Github
Twitter