Ir para conteúdo

Arquivado

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

Sr.hehehe

[Resolvido] Simple HTML DOM Parser

Recommended Posts

Eu quero roubar o conteudo do site notlong, pois o API deles é pra PERL, e ninguem sabe onde achar.

A questão é:

<style type="text/css">
body
{
text-shadow: 0px 1px 0px #fff;
color: #000;
}
.center
{
/* background-color: rgba(255, 0, 255, .5); */
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffb7ff), color-stop(100%,#ff00ff));
box-shadow: 0px 1px 1px #CCC;
padding: 10px 0px 10px 0px;
border: 1px solid #F0F;
border-radius: 10px;
margin-left: -225px;
margin-top: -150px;
position: absolute;
height: 300px;
width: 450px;
color: #F09;
left: 50%;
top: 50%;
}
#noise
{
background: url( noize.png );
margin: 0px;
height: 300px;
width: 450px;
position: relative;
top: -10px;
padding-top: 10px;
border-radius: 10px;
}
.tr td
{
text-align: right;
}
input[type=text]
{
box-shadow: 0px 1px 1px #CCC;
padding: 2px 5px 2px 5px;
border: 1px solid #000;
border-radius: 5px;
width: 170px;
}
</style>
<?php
require_once('class/GOO-GL.class.php');
require_once('class/simple_html_dom.php');

$googl = new goo_gl($_GET['q']);

function roubarDoSite($url)
{
  $html = file_get_html($url);
  $element = $html->find('input[type="text"][name="copymy"][size="27"]');
  return $element->value;
}

echo $notlong = roubarDoSite('http://notlong.com/');

function e($nome, $value)
{
$len = strlen($value);
$lenn = strlen($_GET['q']);
$saldo = $lenn - $len;



if($value == '' or $len == 0 or $len == '0' or $value == 'Please enter a valid url.')
{
	$value = 'Erro!';
}
echo '<tr class="tr"><td>';
echo '<b style="color: #F09;">'.ucfirst($nome).'</b></td><td><input type="text" onclick="this.select();" name="'.$nome.'" id="'.$nome.'" 

value="'.$value.'"/>';

echo '<td>';
if($value == 'Erro!')
{
	echo '<span style="color: red; font-weight: bold;">Erro</span>';
}elseif($saldo == 0)
{
	echo '<span style="color: black; font-weight: bold;">Nulo</span>';
}elseif($saldo > 0 && $saldo < 50)
{
	echo '<span style="color: green; font-weight: bold;">Bom</span>';
}elseif($saldo > 50)
{
	echo '<span style="color: green; font-weight: bold;">Muito bom</span>';
}elseif($saldo < 0)
{
	echo '<span style="color: red; font-weight: bold;">Ruim</span>';
}
echo '</td><td>';

if($value != 'Erro!')
{
	echo '(</td><td>'.$lenn.'</td><td>-</td><td>'.$len.'</td><td>=</td><td><b>'.$saldo.'</b></td><td>)';
} else {
	echo '</td><td></td><td></td><td></td><td></td><td><b</b></td><td>';
}
echo '</td></tr>';
}

function i($nome, $short)
{
$url = $_GET['q'];
e($nome, @file_get_contents($short.$url));
}

echo "<div class='center' align='center'><div id='noise'><table><tbody>";

// Lopear!
i('tinyURL.com', 'http://tinyurl.com/api-create.php?url=');
i('migre.me', 'http://migre.me/api.txt?url=');
i('segue.se', 'http://segue.se/api/?url=');
i('rDZ.me', 'http://rdz.me/api?url=');
i('clig.gs', 'http://cli.gs/api/v1/cligs/create?key=581d291f2e8ba8ba6c7a7a5239bc1113&appid=hiperEncurt&url=');
e('goo.gl', $googl->result());
e('notlong.com', $notlong);
i('pra.la', 'http://pra.la/api?url=');
i('bit.ly', 'http://api.bitly.com/v3/shorten?login=gunscript&format=txt&apiKey=R_f4f796d6cc3bda1d587593a6ac4e7114&longUrl=');
i('br.ly', 'http://br.ly/api.php?url=');
i('is.gd', 'http://is.gd/api.php?longurl=');
echo "</tbody></table></div></div>";

 

O notlong retorna null, e na tabela, ele fica como "Erro".

 

 

FAQ:

Sim, a classe existe.

Sim, eu estou usando APACHE, e não estou executando no "C:/Arqu...".

Sim, o codigo devia funcionar.

Sim, a minha versão está atualizada(1.10).

 

Código livre o acima, quem quiser pode pegar.

Pretendia colocar o seviço para muito mais encurtadores.

 

Codigo que quero puxar:

(O CONTEUDO VARIA):

<input type="text" name="copyme" size="27" value="http://iangagh.notlong.com">

Eu usaria return = $('input[type=text][name=copyme]').val();

Só que não é jquery!!!!.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ajustei o código quando fui ao PC, a minha solução não rolou.

Então, eu ajustei com outra solução e PEI!

 

:

<style type="text/css">
body
{
text-shadow: 0px 1px 0px #fff;
color: #000;
}
.center
{
/* background-color: rgba(255, 0, 255, .5); */
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffb7ff), color-stop(100%,#ff00ff));
box-shadow: 0px 1px 1px #CCC;
padding: 10px 0px 10px 0px;
border: 1px solid #F0F;
border-radius: 10px;
margin-left: -225px;
margin-top: -150px;
position: absolute;
height: 300px;
width: 450px;
color: #F09;
left: 50%;
top: 50%;
}
#noise
{
background: url( noize.png );
margin: 0px;
height: 300px;
width: 450px;
position: relative;
top: -10px;
padding-top: 10px;
border-radius: 10px;
}
.tr td
{
text-align: right;
}
input[type=text]
{
box-shadow: 0px 1px 1px #CCC;
padding: 2px 5px 2px 5px;
border: 1px solid #000;
border-radius: 5px;
width: 170px;
}
</style>
<?php
require_once('class/GOO-GL.class.php');
require_once('class/simple_html_dom.php');

$googl = new goo_gl($_GET['q']);

function roubarDoSite($url, $find, $attr)
{
$url = file_get_contents($url);
$html = new simple_html_dom();
$html->load($url);

$input= $html->find($find, 0);
return $input->$attr;
}

$notlong = roubarDoSite('http://notlong.com/?url='.$_GET['q'], 'input[type=text]', 'value');

function e($nome, $value)
{
$len = strlen($value);
$lenn = strlen($_GET['q']);
$saldo = $lenn - $len;



if($value == '' or $len == 0 or $len == '0' or $value == 'Please enter a valid url.')
{
	$value = 'Erro!';
}
echo '<tr class="tr"><td>';
echo '<b style="color: #F09;">'.ucfirst($nome).'</b></td><td><input type="text" onclick="this.select();" name="'.$nome.'" id="'.$nome.'" 

value="'.$value.'"/>';

echo '<td>';
if($value == 'Erro!')
{
	echo '<span style="color: red; font-weight: bold;">Erro</span>';
}elseif($saldo == 0)
{
	echo '<span style="color: black; font-weight: bold;">Nulo</span>';
}elseif($saldo > 0 && $saldo < 50)
{
	echo '<span style="color: green; font-weight: bold;">Bom</span>';
}elseif($saldo > 50)
{
	echo '<span style="color: green; font-weight: bold;">Muito bom</span>';
}elseif($saldo < 0)
{
	echo '<span style="color: red; font-weight: bold;">Ruim</span>';
}
echo '</td><td>';

if($value != 'Erro!')
{
	echo '(</td><td>'.$lenn.'</td><td>-</td><td>'.$len.'</td><td>=</td><td><b>'.$saldo.'</b></td><td>)';
} else {
	echo '</td><td></td><td></td><td></td><td></td><td><b</b></td><td>';
}
echo '</td></tr>';
}

function i($nome, $short)
{
$url = $_GET['q'];
e($nome, @file_get_contents($short.$url));
}

echo "<div class='center' align='center'><div id='noise'><table><tbody>";

// Lopear!
i('tinyURL.com', 'http://tinyurl.com/api-create.php?url=');
i('migre.me', 'http://migre.me/api.txt?url=');
i('segue.se', 'http://segue.se/api/?url=');
i('rDZ.me', 'http://rdz.me/api?url=');
i('clig.gs', 'http://cli.gs/api/v1/cligs/create?key=581d291f2e8ba8ba6c7a7a5239bc1113&appid=hiperEncurt&url=');
e('goo.gl', $googl->result());
e('notlong.com', $notlong);
i('pra.la', 'http://pra.la/api?url=');
i('bit.ly', 'http://api.bitly.com/v3/shorten?login=gunscript&format=txt&apiKey=R_f4f796d6cc3bda1d587593a6ac4e7114&longUrl=');
i('br.ly', 'http://br.ly/api.php?url=');
i('is.gd', 'http://is.gd/api.php?longurl=');
echo "</tbody></table></div></div>";

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.