Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

destruidoro

Script de monitoramento de pagina

Recommended Posts


galera estou com dificuldade de criar uma pagina em um determinado site o seguinte:


Quero que a minha pagina exemplo www.meusite.com/monitoramento.php me mostre um monitoramento de outra pagina tipo www.imaster.com/noticias se alguma coisa coisa for postada em noticias ou

algo alterado na pagina quero que me informe na minha pagina monitoramento. quero fazer isso com pagina de venda de carro quando a loja adicionar um carro quero que enviei uma mensagem ou mostre na minha pagina.




quero que sempre que existir um novo carro a venda que me mostre na minha pagina e preciso que faça isso a cada 5seg. existe um jeito de eu monitorar o banco de dados do site quando houver alguma alteração no banco eu saber?



Alguém tem alguma ideia de como isso é possível com php sql e html?


ou existe algum script mesmo que seja pago não tem problema.


quero que alerte a mim as mudanças adicionais das paginas escolhidas e não é somente uma pagina a ser monitorada são umas 5 ou mais.



Obrigado, se alguém conseguir dar os caminhos da pedras agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você precisa criar uma rotina que, a cada X segundos/minutos, acesse a URL e verifique o conteúdo dela. Você pode fazer o parse de um trecho específico da página ou comprar o código completo.

 

A ideia geral é:

 

1. Acessar a URL

2. Salvar o conteúdo da página

3. Comprar com o conteúdo antigo

4. Se for diferente, envie a notificação.

 

Existem alguns parsers de HTML feitos em PHP. Mas, se puder usar outra tecnologia, recomendo a lib BeautifulSoup4, do Python. É ótima para fazer parse de HTML

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo eu dei uma pesquisada, acho que do jeito que procuro não irei achar vc teria disponibilidade para me ajudar a desenvolver? eu pago por hora se precisar.

 

Se tiver skype eu te explico o que preciso e vc diz se é possivel ou não a unica linguagem que conheço é php e o basico.

 

pois preciso de algo especifico mas não precisa ser bonito so precisa funcionar =D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom Tarde Beraldo! com tudo que me passou dei uma estudada e consegui puxar os dados da pagina porem ela demora muito para carregar mais de 1 minuto e são somente 133 carros existem filtros que terei que fazer que seria 1500 carros + isso demoraria uns 10 minutos.

 

Tem alguma ideia de como faço para diminuir esse tempo e somente comparar as alterações pois ainda não consegui fazer com que me informe quando a alteração nas informações que puxei

 

 

O que eu ja fiz com simple_html_dom.php:

<?php
	require ("simple_html_dom.php");
	
	//define o limite de tempo do script como 0
	set_time_limit(0);
	
	//variavel que conta o total de links encontrados
	$nlinks = 0;
	
	//string que pega o valor atraves do parser
	$string = '';
	
	//array que pega o valor do parser
	$toyota =array();
	
	//contadores
	$cont = 0;
	$x=1;
	
	
	
	//enquanto o contador for menor que 4 entra no laço
	while($cont < 20){	
	
	
	// get DOM from URL or file
	$html = file_get_html('http://www.webmotors.com.br/comprar/carros/novos-usados/'
	.'sp-sao-paulo/toyota/?tipoveiculo=carros&tipoanuncio=novos-usados&anunciante=pessoa'
	.'%20f%C3%ADsica&marca=toyota&vehicle1=%7B%22marca%22:%22toyota%22%7D&location=%5B%7B'
	.'%22state%22:%22s%C3%A3o%20paulo%22,%22abbr%22:%22sp%22%7D%5D&precoate=170000&anode'
	.'=2012&kmate=30000&atributos=%C3%9Anico%20dono&p='.$cont."&o=3&qt=36");
		
		//while($html){	
			//para cada link encontrado...
			foreach($html->find('a') as $e){
			$string = (string) $e->href;	
				
				//apenas verifica se o link nao tem a string "comprar/toyota"
				if(strpos($string, 'comprar/toyota') != 1){
					//unset($html);
				}else{
					//verifica se o link tem a string "comprar/toyota"
					if(strpos($string, 'comprar/toyota') == 1){	
						//transforma a string encontrada em um link ativo
						$link = "<a href='http://www.webmotors.com.br/".$string. "'>".$string. "</a>";
						
						//echo $link."<br>";
												
						$nlinks++;
						
						//insere o link no array
						$toyota[$nlinks] = $link;
					}							
				}
				
			}
			$cont++;
			unset($html);
		}
		
		
		
		//pega o tamanho do array
		$tam = sizeof($toyota);
			
		//enquanto o contador for menor que o tamanho do array
		while($x <= $tam){	
			//imprime o array na posição x
			echo $toyota[$x]."<br>";
			$x++;
		}
			
		echo "<br> ".$nlinks." carros da TOYOTA foram encontrados!<br>";
		
?>

Saida:

QPi6k.jpg

 

Quem puder tbm ajudar agradeço, estou tentando criar uma pagina de monitoramento para quando sair um novo carro no anuncio a pagina me avise as mudanças porem esta muito lerdo para puxar as informações preciso que atualize em uns 30seg pois não tem somente uma marca depois que terminar o codigo vou fazer de quase todas marcas populares e serão mais de 3000 carros. se com 134 demora uns 50seg+ imagine com 5000. preciso que puxe de 5000 em mais o menos 1 min.

Compartilhar este post


Link para o post
Compartilhar em outros sites

não o maximo são 36 carros por pagina existe outra maneira de fazer esse tipo de verificação de alteração mais rapida?

 

eu faço com 20 pois é a media de cada marca de carro uns 700 mais tem alguns que são menores, e ainda tenho que fazer de todas as marcas populares numa pagina só. vai demorar uma eternidade a outro caminho?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se eles não fornecem Web Service, essa é a única saída.

O processo demora mesmo. O ideal é ter isso rodando em um cron. Faça o script atualizar um banco de dados local a cada X horas, por exemplo. E a exibição para o usuário é feita consultando essa base local, não o site remoto

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.