Articles of phantomjs

como esperar pela visibilidade do elemento em phantomjs

Os usuários clicam neste link: Agora estou simulando o clique em phantomjs: page.evaluate( function() { $(“#panel”).click(); } ); console.log(‘SUCCESS’); phantom.exit(); O fantasma sai antes que a function lenta termine sua execução e o DIV fica visível. Como posso implementar a espera?

Como renderizar parte de uma página com o PhantomJS?

Gostaria de renderizar elementos HTML individuais em PNGs usando o Phantom.JS. Alguém sabe se isso é possível? Além disso, como eu usaria o Phantom.js para renderizar uma página que o usuário já está procurando?

Looping sobre urls para fazer a mesma coisa

Estou tentando raspar alguns sites. Aqui está o meu código: for (var i = 0; i < urls.length; i++) { url = urls[i]; console.log("Start scraping: " + url); page.open(url, function () { waitFor(function() { return page.evaluate(function() { return document.getElementById("progressWrapper").childNodes.length == 1; }); }, function() { var price = page.evaluate(function() { // do something return price; […]

Como fazer um SPA SEO rastreável?

Eu tenho trabalhado em como tornar um SPA rastreável pelo google com base nas instruções do google. Embora haja algumas explicações gerais, não consegui encontrar um tutorial passo-a-passo mais completo com exemplos reais. Depois de ter terminado isso, gostaria de compartilhar minha solução para que outros também possam utilizá-la e, possivelmente, melhorá-la ainda mais. Eu […]

Usando Multiple page.open em Single Script

Meu objective é executar o PhantomJS usando: // adding $op and $er for debugging purposes exec(‘phantomjs script.js’, $op, $er); print_r($op); echo $er; E, em seguida, dentro do script.js , pretendo usar vários page.open() para capturar capturas de canvas de diferentes páginas, como: var url = ‘some dynamic url goes here’; page = require(‘webpage’).create(); page.open(url, function […]

Como rolar para baixo com o Phantomjs para carregar o conteúdo dynamic

Eu estou tentando raspar links de uma página que gera conteúdo dinamicamente como o usuário rolar para baixo para a parte inferior (rolagem infinita). Eu tentei fazer coisas diferentes com o Phantomjs, mas não consegui reunir links além da primeira página. Digamos que o elemento na parte inferior, que carrega o conteúdo, tenha class .has-more-items […]

Passar argumentos com page.evaluate

Estou usando o PhantomJS page.evaluate () para fazer alguns scraping. Meu problema é que o código que eu passo para a página do webkit é em modo de sandbox e, portanto, não tem access às variables ​​do meu script fantasma principal. Isso torna difícil tornar o código de raspagem genérico. page.open(url, function() { var foo […]

baixar um arquivo que vem como um anexo em uma resposta de solicitação POST no PhantomJs

Eu quero baixar um arquivo CSV, ele é gerado em um clique de botão através de uma solicitação POST. Eu pesquisei no meu melhor em fóruns casperJs e phantomJS e retornei de mãos vazias. Em um navegador normal como o firefox, uma janela de diálogo de download do navegador aparece após a solicitação de postagem. […]

Como posso capturar e processar os dados das respostas XHR usando casperjs?

Os dados na página da web são exibidos dinamicamente e parece que verificar todas as alterações no html e extrair os dados é uma tarefa muito difícil e também precisa que eu use XPaths não confiáveis. Então, eu gostaria de poder extrair os dados dos pacotes XHR . Espero poder extrair informações de pacotes XHR […]

CasperJS bind issue

Estou tentando acessar uma página do instagram, mas sem sorte. Eu continuo recebendo o erro e uma captura de canvas em branco. Texto do erro: TypeError: ‘undefined’ is not a function (evaluating ‘a.createDescriptor.bind(null,t)’) Casperjs –version é 1.1.0-beta3. Basicamente eu uso o seguinte código: var casper = require(‘casper’).create({ verbose: true, logLevel: ‘debug’, pageSettings: { userAgent: ‘Mozilla/5.0 […]