Personalização Avançada
Discord
Github
Twitter Outsource
| Se você acha o Pagetual útil e pode ajudar, uma gorjeta para financiar seu desenvolvimento seria muito apreciada. Se não, sem problemas – aproveite!💞 | ||||
|---|---|---|---|---|
PayPal | Ko-fi | 愛發電 | ||
| Entre no 💬Discord | ||||
| Envie um 📧E-Mail | ||||
| Feito com ❤️ por 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/",
"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
Nome do site de destino
"name": "Nome do Site"
author
Autor desta regra
"author": "Hoothin"
example
URL de exemplo para esta regra
"example": "https://abc.com"
url
RegExp para a URL do site de destino
"url": "^https://abc\\.com/\\d+"
pinUrl
Às vezes, o link da próxima página ou o elemento da página não existe. Defina como true para que você possa fixar a regra apenas com a URL, em vez de encontrar elementos por regras inteligentes.
"pinUrl": true
enable
0 significa parar a ação quando tudo corresponder
"enable": 0
include
Seletor ou xpath do elemento que deve ser incluído
"include": "div.content"
exclude
Seletor ou xpath do elemento que não deve ser incluído
"exclude": "div.content"
wait
O tempo de espera para a página carregar quando você tem certeza de que a URL corresponde ao site. Você também pode usar um código JavaScript que retorna um booleano para verificar se a página está pronta.
"wait": 500
"wait": "let img=doc.querySelector('ul.list img');return img!=null"
waitElement
O array["existir", "não existir"] contém "seletor ou xpath do elemento que deve existir (para alguns elementos de carregamento lento)" e "seletor ou xpath do elemento que não deve existir (para algum placeholder de carregamento que precisa ser rolado para a vista para carregar)".
"waitElement": [
".summary",
"#popular.fade:not(.in)"
]
action
0 significa carregar a URL e inserir com HTML estático, 1 significa carregar por iframe para que o código JavaScript dinâmico na página possa ter efeito, 2 significa forçar a inserção do iframe na parte inferior.
"action": 1
nextLink
Seletor ou xpath do link da próxima página, desabilitado quando definido como 0. Você pode defini-lo como um array para conter vários links de próxima página.
"nextLink": ".page-next>a"
"nextLink": [
".page1-next>a",
".page2-next>a",
".page3-next>a"
]
nextLinkByUrl
Se não houver um elemento de próxima página, você pode usar isso para gerar um href a partir da URL atual. [0] significa a string RegExp, [1] significa a string de substituição, [2] significa o seletor ou xpath do elemento que deve ser incluído, [3] significa o seletor ou xpath do elemento que não deve ser incluído. Você pode usar {} para avaliar código simples.
"nextLinkByUrl": [
"(&page=(\\d+))?$",
"&page={$2+1}"
]
"nextLinkByUrl": [
"(&page=(\\d+))?$",
"&page={$2+1}",
".disable>button"
]
nextLinkByJs (doc)
Use isto para avaliar código JavaScript e retornar a URL de destino da próxima página com doc (documento de cada página carregada).
"nextLinkByJs": "let n=doc.querySelector('a.curr+a');if(n)return n.href.replace(/^javascript:.*\\((\\d+)'\\);/,'$1_.html');"
stopSign
Pare de carregar a próxima página ao encontrar este sinal.
"stopSign": ["#pagenum", ".disable",
[
"#pagenum",
"(\\d+)"
],
[
"#pagenum",
"\\/(\\d+)"
]
]
pageElement
Seletor ou xpath do conteúdo principal que precisa ser inserido. Você pode defini-lo como um array para conter múltiplos elementos da página.
"pageElement": ".Context>.Article"
pageElementByJs (over)
Use isto para avaliar código JavaScript e criar os elementos que você deseja inserir. Uma função over(eles) é necessária para retornar (callback) com o array de elementos para inserção.
"pageElementByJs": "let src=match[1]+match[3];img.onload=()=>{over([img])};img.onerror=e=>{over()};img.src=src;"
replaceElement
Seletor ou xpath do elemento que você deseja substituir por um novo, pode ser um array.
"replaceElement": "#page"
"replaceElement": ["#page1", "#page2"]
lazyImgSrc
O atributo da imagem que aponta para o src real, pode ser definido por ["lazysrc", "removeProp1,removeProp2"] para remover propriedades da imagem.
"lazyImgSrc": "data-cfsrc"
"lazyImgSrc": ["data-lazy-src", "removeProp1,removeProp2"]
css
Adicione CSS para que você possa mostrar alguns elementos ocultos. Comece com "inIframe:" e este CSS terá efeito apenas na próxima página do iframe.
"css": ".card-lazy{display:none}"
insert
Em qual posição você deseja inserir. Você pode defini-lo como um array para conter múltiplas posições.
"insert": "ul#feed-main"
insertPos
1 significa inserir antes, 2 significa apenas anexar ao final do alvo.
"insertPos": 2
iframeInit (win, iframe)
O código JavaScript a ser executado o mais rápido possível antes que qualquer código no iframe seja executado.
"iframeInit": "win.self=win.top;"
init (doc, win, iframe, click, enter, input)
O código JavaScript a ser executado apenas uma vez na página principal atual ou em cada iframe com doc: (documento da página principal ou iframe).
"init": "if(doc)doc.querySelector('[data-title=sh]').click();"
pagePre (response)
O código JavaScript a ser executado após obter a resposta da URL do próximo link. Você pode modificar o conteúdo da resposta e retorná-lo.
"pagePre": "return decodeURI(response).replace(/[\\\\]/g,'')"
pageInit (doc, eles)
O código JavaScript a ser executado com cada página inserida com doc: (documento de cada página carregada) e eles: (elementos encontrados com a regra), executado antes de ser inserido. Você pode disparar eventos como onView().
"pageInit": "let ops=doc.querySelectorAll('op');[].forEach.call(ops,op=>{img.src=op.value;imgCon.appendChild(img)})"
pageAction (doc, eles)
O código JavaScript a ser executado com cada página inserida com doc: (documento de cada página carregada) e eles: (elementos encontrados com a regra), executado após a inserção. Você pode adicionar funções como click().
"pageAction": "let j=document.querySelector('.lazy');eles.forEach(i=>{i.src=i.dataset.srcset;})"
filter
Filtra os elementos inseridos da próxima página.
"filter": {
"count": 20,
"words": "spams\\d",
"link": "^https://spams\\.xxx",
"selector": "div#spam"
}
loadMore
Seletor do botão "carregar mais".
"loadMore": ".loadMore"
sleep
Tempo de espera (ms) ao carregar a próxima página se o site for limitado por intervalo de tempo.
"sleep": 1000
rate
A altura múltipla da janela que você pode definir como 2 ou 3 enquanto alguns sites carregam a próxima página lentamente.
"rate": 3
autoLoadNum
A quantidade de páginas para virar automaticamente após a abertura da página.
"autoLoadNum": 5
listenHashChange
Defina como true para que o pagetual reinicie quando o hash mudar.
"listenHashChange": true
refreshByClick
Se o site recarregar o conteúdo sem alterar a URL ao clicar em um botão de envio. Defina isso com o seletor do botão de destino, o pagetual será redefinido após clicar nele.
"refreshByClick": "#sreach"
pageNum
Aponte o número da página com $p na URL atual, você pode usar {} para avaliar a string de resultado a partir do número da página, como {$p*25+1}.
"pageNum": "&start={15*($p-1)}"
pageBar (pageBar)
O código JavaScript para alterar a pageBar, 0 significa ocultar.
"pageBar": "pageBar.classList.add('j_thread_list');"
pageBarText
Defina como 1 para que o título do documento da próxima página seja exibido na barra de página.
"pageBarText": 1
autoClick
O seletor CSS ou xpath do elemento que você deseja clicar automaticamente.
"autoClick": "#btn-sky"
history
Defina como 0 para desabilitar a escrita no histórico. Defina como 1 para habilitar a escrita no histórico. Defina como 2 para que a escrita no histórico seja acionada imediatamente após a junção. O valor da opção geral não importa.
"history": 1
lockScroll
Defina como true se você não quiser que a página role automaticamente ao navegar para a próxima página.
"lockScroll": true
wheel
Defina como true para que a ação da próxima página só tenha efeito quando a roda do mouse girar.
"wheel": true
fitWidth
Defina como false se você achar que o pageElement está com uma largura pequena incorreta.
"fitWidth": false
delay
O código JavaScript para atrasar a próxima ação até retornar true. Use esta propriedade para obter elementos de página completos com carregamento lento (lazy load).
"delay": "return document.querySelector('#feed_pagenation>li.cur').innerText>=curpage"
manualMode
Defina como true para habilitar o modo manual, então a paginação irá parar, a seta para a direita (ou evento 'pagetual.next') será vinculada para clicar no próximo link.
"manualMode": true
openInNewTab
Defina como true para fazer todos os links abrirem em novas abas, false para fazê-los abrir na mesma aba.
"openInNewTab": true
pageElementCss
O estilo CSS que você deseja definir para cada elemento da página.
"pageElementCss": "color: red"
initRun
Executar imediatamente após a inicialização.
"initRun": true
sideController
Mostrar ou ocultar a barra de ferramentas do sideController.
"sideController": true
listenUrlChange
Atualizar o script após a mudança da URL.
"listenUrlChange": false
clickMode
Parar de virar a página e clicar no próximo link após rolar até o final.
"clickMode": true
preloadImages(doc)
Analisa a página e retorna um array com as URLs das imagens que precisam ser pré-carregadas.
"preloadImages": "return ['1.jpg']"
child script
Se o site tiver algum limite para a avaliação de código (eval). Você pode criar um script filho com uma função sob o objeto window. Você deve nomeá-los começando com pagetual usando camelCase. Como window.pagetualWait, window.pagetualNextLinkByJs, window.pagetualPageInit, window.pagetualPageAction, window.pagetualInit, window.pagetualPageBarText.