Tutorial: Horóscopo Grátis (Script)

  • Autor Autor Cicklow
  • Data de início Data de início
Este tópico foi traduzido automaticamente do espanhol. Ver original
Cicklow

Cicklow

Admin
Dseda
Verificado
Verificación en dos pasos activada
Suscripción a IA
Bem, hoje vocês aprenderão como criar seu script de horóscopo automatizado, sim, sim AUTOMATIZADO!!! sem mover um dedo, poderão ter seu horóscopo em seu site, Facebook ou onde quer que queiram!
sin-t-tulo-463fe80.png

Tutoriais Anteriores:
Horóscopo Grátis (Script)
Seu site de Tarot sem fazer nada
Programar nosso próprio site de tarot
Programar nosso próprio site de tarot - V2
Criar aplicativos Android - Horóscopo Chinês
O complemento de todo site de Tarot (Aplicativo Android)

Passo 1 - Criar nosso bot
O bot será encarregado de obter o horóscopo do site Horoscopo., será criado um cache dos horóscopos uma vez ao dia, desta forma de qualquer lugar poderão acessar este horóscopo.
Criamos um arquivo chamado crea.cache.php
PHP:
<?php
    //Evitamos que el script se pare por falta de tiempo (30 seg por defecto)
    set_time_limit(0);
    //Nuestro array de los horos a obtener
    $S = array('acuario','aries','cancer','capricornio','geminis','libra','leo','piscis','sagitario','escorpio','tauro','virgo');
    //Recorremos el array
    foreach($S as $H){
        //Leemos el sitio abc.es pasandole el horos a leer
        $URL = "https://horoscopo.abc.es/signos-zodiaco-".$H."/horoscopo-hoy.html";
        $A = @file_get_contents($URL);
        //si obtenemos los datos vamos a parsearlos
        if($A!=""){
            //un bot sin preg_match no es un bot! jejeje.. obtenemos el texto del horos, este se encuentra dentro de un DIV
            preg_match('|<span class="caja-ppal-noticia clear">(.*)<p class="callInfo"></p>|sU',$A,$B);

	    if(strlen($B[1])>10){
		    $HO = preg_replace('|<ul class\="herramientas clear">(.*)</ul>|sU','',$B[1]);
		    $HO = str_replace(array("<br>","<br/>"),"##BR##",$HO);
	            $HO = strip_tags($HO);
		    $HO = str_replace("##BR##","<br/>",$HO);
        	    $HO = str_replace(array("\r", "\n"),"", $HO);
	            $HO = trim($HO);
		    $HO = preg_replace('|Predicci&oacute;n(.*)<br/>|sUi','',$HO); //Sacar titulo y fecha... si lo queremos dejar, comentamos esta linea
        	    file_put_contents("cache/".$H.".txt",$HO);
	            echo "Bien: ".$H."\n<br/>";
	    }else{
		echo "Error ".$H." [1]\n<br/>";
	    }
        }else{
            //mostramos error
            echo "Error ".$H." [NO URL]\n<br/>";
        }
    }
    die("FIN Horos!");
?>

Para que seja automatizado teremos que usar CRON, entramos em nosso cPanel->Cron jobs e o configuramos desta maneira:
sin-t-tulo2-4661e59.png
(Qualquer um dos dois wget ou php é válido!)
Só mudem a URL do meu site pela de vocês (o crea.cache.php meu não funciona!! portanto não poderão obter os horóscopos do meu site), isto o que faz é executar o criador de cache todos os dias às 12:05hs.

Passo 2 - Nosso Site
Agora criaremos um arquivo chamado index.php (este arquivo só é necessário se vocês forem colocar o script em um site e oferecê-lo a partir daí, e não é necessário se vocês forem obter os horóscopos para WP, Facebook, ou outro)...
PHP:
<!DOCTYPE html>
<html lang="es">
<head>
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<title>Horoscopo Gratis</title>
	<style>
	
	.masthead {
	    color: #FFFFFF;
	    margin-bottom: 0;
	}
	.masthead h1 {
	    font-size: 120px;
	    letter-spacing: -2px;
	    line-height: 1;
	}
	.jumbotron:after {
	    background: linear-gradient(45deg, #020031 0%, #6D3353 100%) repeat scroll 0 0 transparent;
	    box-shadow: 0 3px 7px rgba(0, 0, 0, 0.2) inset, 0 -3px 7px rgba(0, 0, 0, 0.2) inset;
	    bottom: 0;
	    content: "";
	    display: block;
	    left: 0;
	    opacity: 0.4;
	    position: absolute;
	    right: 0;
	    top: 0;
	}
	.jumbotron {

	    color: #FFFFFF;
	    padding: 5px 0;
	    position: relative;
	    text-align: center;
	    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4), 0 0 30px rgba(0, 0, 0, 0.075);
	    height:100%;
	}
	body{
	    	background: linear-gradient(45deg, #020031 0%, #6D3353 100%) repeat scroll 0 0 transparent;
	    	box-shadow: 0 3px 7px rgba(0, 0, 0, 0.2) inset, 0 -3px 7px rgba(0, 0, 0, 0.2) inset;
		font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
		margin: 0px;
		padding: 0px;
		height:100%;
	}
	.container:after {
	    clear: both;
	}
	.container:before, .container:after {
	    content: "";
	    display: table;
	    line-height: 0;
	}
	.container:before, .container:after {
	    content: "";
	    display: table;
	    line-height: 0;
	}
	.jumbotron .container {
	    position: relative;
	    z-index: 2;
	}
	</style>
</head>
<body>
<div class="jumbotron masthead"><div class="container">
	<h1 style="font-size: 16px;font-size: 3.75vw;">Horoscopo Gratis</h1>
	<center><div style="width:100%;max-width: 760px;height:100%;">
	<?php
	$URLINICIO = "http://test.cicklow.me/ForoBeta/horoscopo/"; // url del inicio del script.
	$T = array('aquarius.png','aries.png','cancer.png','capricorn.png','gemini.png','libra.png','lion.png','pisces.png','sagittarius.png','scorpio.png','taurus.png','virgo.png');
	$S = array('acuario','aries','cancer','capricornio','geminis','libra','leo','piscis','sagitario','escorpio','tauro','virgo');

	if($_GET['horos']==""){
		foreach($T as $K=>$A){
			//echo '<a href="?horos='.$S[$K].'">'; //sin mod-rewrite
			echo '<a href="horoscopo-'.$S[$K].'.html">'; //con mod-rewrite
			echo '<img src="zodiac/'.$A.'" style="width:100%;min-width:50px;max-width:180px;padding:5px;float:left;" border="0">';
			echo '</a>';
		}
	}else{
		$AR = 'cache/'.strip_tags($_GET['horos']).'.txt';
		if(file_exists($AR)){
			echo '<img src="zodiac/'.$T[array_search($_GET['horos'], $S)].'" style="width:100%;min-width:50px;max-width:120px;padding:5px;float:left;" border="0">';
			include($AR);
			echo '<br/><a style="text-decoration:none;" href="'.$URLINICIO.'">Volver</a><br/><div style="height:190px"></div>';
		}else{
			echo 'Error al cargar el horoscopo!';
		}
	}

	?>
	</div></center>
</div></div>
</body>
</html>

Edit 2022, adicionei a opção de mod-rewrite.. isto permite que o usuário acesse com horoscopo-QUAL.html... se seu servidor não suporta isto, elimine .htaccess e tire o comentário da linha de no-rewrite.
PHP:
RewriteEngine on

RewriteRule ^horoscopo-([^/]+).html$ index.php?horos=$1 [L]

Passo 3 - RSS Horóscopo
Este RSS será usado para poder automatizar nossos WP, Facebook, Blogger e outros mais!! Ao criar um RSS de nossos horóscopos poderemos acessar a ele de qualquer lugar e postá-lo onde seja!
Criaremos um arquivo chamado horosRSS.php, este arquivo terá um pouco mais de programação e código XML (RSS - Wikipédia, a enciclopédia livre)
PHP:
<?php
	//Definimos el timezone de nuestro script (buscar funcion en google para mas info)
	date_default_timezone_set('America/Argentina/Buenos_Aires');
	//Evitamos que nuestro script se nos muera a los 30seg
	@set_time_limit(0);
	//Indicamos que es un XML
	@header ("Content-type: text/xml");
	//Indicar la url de nuestro script
	define('WEB','http://127.0.0.1/ForoBeta/horoscopo/');
	//Creamos un array con los horos
	$_S = array('acuario','aries','cancer','capricornio','geminis','libra','leo','piscis','sagitario','escorpio','tauro','virgo');

	//Funcion encargada de convertir los acentos y demas en caracteres soportados por XML (ya que sino da error de codificacion XML)
	function _T($mensaje){
		return xmlcharacters($mensaje);
	}

	//Convertimos las entidades HTML en entidades normales
	function decode_entities($text) {
	    $text= html_entity_decode($text,ENT_QUOTES,"ISO-8859-1"); #NOTE: UTF-8 does not work!
	    $text= preg_replace('/&#(\d+);/me',"chr(\\1)",$text); #decimal notation
	    $text= preg_replace('/&#x([a-f0-9]+);/mei',"chr(0x\\1)",$text);  #hex notation
	    return $text;
	}

	//Convertimos todo los acentos y demas a XML
	function xmlcharacters($string, $trans='') {
		$string = str_replace("’","'",$string);
		$string = html_entity_decode($string);
		$trans=(is_array($trans))? $trans:get_html_translation_table(HTML_ENTITIES, ENT_QUOTES);
		foreach ($trans as $k=>$v)
			$trans[$k]= "&#".ord($k).";";
		return strtr($string, $trans);
	}

	//Mas sobre los acentos...
	function xml_character_decode($string, $trans='') {
		$trans=(is_array($trans))? $trans:get_html_translation_table(HTML_ENTITIES, ENT_QUOTES);
		foreach ($trans as $k=>$v)
			$trans[$k]= "&#".ord($k).";";
		$trans=array_flip($trans);
		return strtr($string, $trans);
	}

	//Cabezera para indicar que es un RSS
$_XML='<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
<title>Horoscopo</title>
	<atom:link href="'.WEB.'horosRSS.php" rel="self" type="application/rss+xml" />
	<link>'.WEB.'</link>
	<description>Horoscopo Gratis</description>
	<pubDate>'.date('r',time()).'</pubDate>

	<generator>http://www.cicklow.com</generator>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>';

	//Nuestro array de siempre XD
	$S = array('acuario','aries','cancer','capricornio','geminis','libra','leo','piscis','sagitario','escorpio','tauro','virgo');
	$T = array('aquarius.png','aries.png','cancer.png','capricorn.png','gemini.png','libra.png','lion.png','pisces.png','sagittarius.png','scorpio.png','taurus.png','virgo.png');
	for($SIG=0;$SIG<=11;$SIG++){
		//Leemos el horos
		$SIG2 = @file_get_contents('cache/'.$S[$SIG].'.txt');
		//Lo agregamos a la estructura XML, titulo, link, fecha, creador, link, descripcion corta, descripcion larga (contenido), imagen
		$_XML .= "\n".'			    	<item>
		<title>'._T(ucfirst($S[$SIG])).' '.date('d-m-Y').'</title>

		<link>'.WEB.'index.php?horos='.$S[$SIG].'</link>
		<pubDate>'.date("r",time()).'</pubDate>
		<dc:creator>cicklow</dc:creator>
		
		<guid isPermaLink="false">'.WEB.'index.php?horos='.$S[$SIG].'</guid>
		<description><![CDATA['.substr(strip_tags($SIG2),0,300).'...]]></description>

		<content:encoded><![CDATA['.$SIG2.']]></content:encoded>
	
		<media:content url="'.WEB.'zodiac/'.$T[$SIG].'" medium="image" />
		</item>';
	}
	$_XML .="\n".'  </channel>'."\n".'</rss>';
	die($_XML);
?>

Passo 4 - Como automatizar...
Para WP usaremos: WordPress › WP RSS Aggregator « WordPress Plugins
Para Blogger usaremos: http://forobeta.com/tutoriales/58713-autopost-blogger-com.html
Para Facebook usaremos: RSS Graffiti | Easy Facebook Automation
Para Twitter usaremos: http://twitterfeed.com/
Para outros... bem, procurem qualquer importador de RSS para seu site!

Passo 5 - DICAS
- Ao ter o RSS poderão fazer o que quiserem, até criar apps Android e obter os horóscopos a partir do RSS, script, o que seja
- Podem usar AdSense sem problemas (ou outra empresa)

Demo
Inserir CODE, HTML ou PHP:
https://test.cicklow.me/ForoBeta/horoscopo/
Download
Inserir CODE, HTML ou PHP:
https://test.cicklow.me/ForoBeta/horoscopo/horoscopo.rar
RSS (só mostrará o horóscopo do dia de hoje e não se atualizará mais)
Inserir CODE, HTML ou PHP:
https://test.cicklow.me/ForoBeta/horoscopo/horosRSS.php

Mais opções para tarot:
http://forobeta.com/tutoriales/332521-programar-nuestro-propio-sitio-de-tarot.html
http://forobeta.com/tutoriales/333614-programar-nuestro-propio-sitio-de-tarot-v2.html

Adicionado 2022
PHP:
<?php
//OJO a este archivo... ponerle un nombre que solo ustedes sepan!
$S = array('acuario','aries','cancer','capricornio','geminis','libra','leo','piscis','sagitario','escorpio','tauro','virgo');

if($_POST['formulario']==""){
	echo "<form action='' method='POST'>";
	//Recorremos el array
	foreach($S as $H){
		echo "<h1>".$H."</h1>";
		echo '<textarea name="h[]" cols="100" rows="10"></textarea>';
	}
	echo '<br/><br/><input type="submit" name="formulario"></form>';
}else{
	//Guardamos los datos
	foreach($_POST['h'] as $K=> $H){
		echo "Guardando - ".$S[$K]."<br>";
		file_put_contents("cache/".$S[$K].".txt",$H);
	}
	echo "<a href=''>Inicio</a>";
}
?>
Este agregado permite adicionar o horóscopo manualmente, sem depender de abc.es... só copiam os horóscopos (ou os escrevem vocês) e enviam o formulário, o script guarda cada um dos horóscopos... Ter em conta que isto vocês terão que fazer todos os dias ou a cada o tempo que vocês quiserem (exemplo um horóscopo semanal)... Podem adicionar inclusive HTML.
Este arquivo permite colocar código em seu servidor, e logo ser chamado a partir de index.php... por isso COLOQUEM UM NOME QUE SÓ VOCÊS SAIBA...

Abraços! E Happy tarot site!
 
Última edição:
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
QUE GRANDE DE APORTE! Como sempre inovando e compartilhando, delicioso, muito obrigado Cicklow! Obrigado MESTRE 😎:encouragement:🙄
 
Reportado.

Razão: Excelente aporte 😀 :topsy_turvy:😎 😛8:
 
*.* "Aquário, você está sensual, transborda amor, é pura ternura e incita que todo mundo te ame. Você é, neste momento da sua vida, puro amor"
KKKKKKKKKKKK não é verdade, não transbordo amor, sofro do coração

obrigado pelo script
 
Você é um mestre, quero um script com as mulheres dos horóscopos de durango, hehehe está muito bom o tuto
 
Meu horóscopo está excelente, por isso as pessoas ficam viciadas nisso :encouragement: Excelente tuto
 
A verdade é que você se supera, que bom tutorial! 😀
Vai direto para os favoritos.
 
Como sempre, muito bom tutorial. Acho que você deve estar cheio de dinheiro com esses horóscopos 😛8:
 
Adorei isso, vou usar, mas será possível você me ensinar onde colocar publicidade porque não sei onde colocar
 
Adorei isso, vou usar, mas será possível você me ensinar onde colocar publicidade porque não sei onde colocar

a publicidade te convém onde você mostra o horóscopo, já que onde estão as imagens não há conteúdo textual (a menos que você monte um bom texto) (index.php)
 
[MENTION=9679]cicklow[/MENTION] como sempre, mil obrigado
É possível usar as meta do Facebook ou, como pegam o texto do rss, é impossível?
Estou há um tempo tentando e não consigo
 
[MENTION=9679]cicklow[/MENTION] como sempre, mil obrigado
É possível usar as meta do Facebook ou, como pegam o texto do rss, é impossível?
Estou há um tempo tentando e não consigo

para as meta do facebook você tem que editar index.php e em vez de usar include($AR); você teria que usar:
$ZZ = file_get_contents($AR);
então você já tem o conteúdo do horóscopo em uma variável, aí você coloca nas meta do facebook e mostra ao usuário
 
Excelente tuto, obrigado.

PD: Não aparecem as imagens do post.
 
O Adsense não penaliza por usar o mesmo texto que aparece em Horóscopo diário: Astrologia, Signos do Zodíaco, Tarot, Feng Shui, Mapa Astral. ? Não tinha que ser conteúdo original e não copiado de outro site?

pois jamais dei importância a isso... o usuário entra buscando o horóscopo... além disso, há sites que te dão os horóscopos para o seu site... exemplo como os que o BING usa, senão, é inventar o horóscopo todos os dias!
Além disso, é um horóscopo... não um artigo copiado de outro site... é como as cartas de tarot... milhões de sites mostrando os mesmos valores das cartas... isso não tem nada a ver!
 
Então não haveria com o que se preocupar 🙂 Obrigado pelo tuto

pois jamais dei importância a isso... o usuário entra buscando o horóscopo... além disso, há sites que te dão os horóscopos para o seu site... exemplo como os que o BING usa, senão, é inventar o horóscopo todos os dias!
Além disso, é um horóscopo... não um artigo copiado de outro site... é como as cartas de tarot... milhões de sites mostrando os mesmos valores das cartas... isso não tem nada a ver!
 
APORTE FENOMENAL! Obrigado cicklow!
 
muito bom, merece uma curtida
 
Genial como sempre :encouragement:
 

Tópicos similares

Voltar
Topo