Ir para conteúdo

POWERED BY:

Arquivado

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

felipe.exe

curl [PHP]

Recommended Posts

Olá pessoal, gostaria de uma ajuda de vocês estou com script usando cURL que esta até funcionando, porem, ao retornar o resultado gostaria que ele me retornasse somente um link especifico que é gerado na pagina, o problema e que esse link não é gerado em div. segue abaixo o trecho que eu quero que seja retornado

 

 <table width="578" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="Texto" align="center">
<table width="440" border="0" cellpadding="3" cellspacing="0">
<tbody>
<tr>
<td style="text-align: left;">
<li><font color="red"><b><a href="http://www619.megaupload.com/files/8f2966ca9e9a4d1a2c76d05c6095a060/Crash Team Racing Portable.rar" target="_blank">http://www619.megaupload.com/files/8f2966ca9e9a4d1.....</a></b></font></li></td></tr></tbody></table>
</td>
</tr>
</table>
</form></td>
</tr>
</table>

 

Eu gostaria que retornasse somente isso:

<a href="http://www619.megaupload.com/files/8f2966ca9e9a4d1a2c76d05c6095a060/Crash Team Racing Portable.rar" target="_blank">

 

o meu script retorna uma variavel com o resultado da seguinte forma:

 

curl_setopt ($ch , CURLOPT_URL , 'http://www.site/pagina.php');
curl_setopt ($ch , CURLOPT_POSTFIELDS , 'url='.$post );
curl_setopt ($ch, CURLOPT_RETURNTRANSFER ,true);
$xpl= curl_exec ($ch );
echo $xpl;

 

 

será que alguém poderia me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tem que filtrar o resultado usando ER's.

 

preg_match resolve:

http://www.php.net/preg_match

Muito obrigado cara, vou tentar aqui.

 

eu coloquei dessa forma:

 

$pega = preg_match('/<tbody>\].+\[\/</tbody>\]', $xpl);
echo $pega;

 

mas deu esse erro:

 

(!) Warning: preg_match () [ function.preg-match ]: 't Desconhecido modificador' D: \ Servers \ wamp \ www \ Megaupload \ get.php on line 34

Compartilhar este post


Link para o post
Compartilhar em outros sites

faltou a barra invertida antes da barra que fecha tbody

dessa forma deu o erro do mesmo jeito =( eu coloquei da seguinte forma:

 

$pega = preg_match('/<tbody>\].+\[\/\</tbody>\]', $xpl);

 

também tentei assim:

$pega = preg_match('(<tbody>.*<\/tbody>)', $xpl);

 

porém so me retornou um 0

 

eu sei que e pedir de mais, mas será que voce poderia escrever como é que deve ficar, ou se possivel, como é que faço para que

retorne apenas isso

http://www619.megaupload.com/files/8f2966ca9e9a4d1a2c76d05c6095a060/Crash Team Racing Portable.rar

 

?? agradeço desde ja!

Compartilhar este post


Link para o post
Compartilhar em outros sites

corrigindo sua primeira tentativa:

 

'/<tbody>\].+\[\/<\/tbody>\]/i'

 

além da barra invertida, tinha faltado o último delimitador (barra).

Coloquei o modificador "i" para a ER ser case-insensitive

Compartilhar este post


Link para o post
Compartilhar em outros sites

corrigindo sua primeira tentativa:

 

'/<tbody>\].+\[\/<\/tbody>\]/i'

 

além da barra invertida, tinha faltado o último delimitador (barra).

Coloquei o modificador "i" para a ER ser case-insensitive

 

eu coloquei assim:

$pega = preg_match('/<tbody>\].+\[\/<\/tbody>\]/i', $xpl);
echo $pega;

e só me retornou um 0

=(

 

será que fica complicado pra voce me mostrar como devo fazer pra pegar somente o:

http://www619.megaupload.com/files/8f2966ca9e9a4d1a2c76d05c6095a060/Crash Team Racing Portable.rar

?

 

ou alguma forma de pegar todos os links da pagina com um array ai e só eu retornar apenas a posição que esta o que eu preciso.

:ermm:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu coloquei assim tambem e so me retorna 0 :(

 

curl_setopt ($ch , CURLOPT_URL ,  'http://www.site.com/pagina.php');
curl_setopt ($ch , CURLOPT_POSTFIELDS ,  'link='.$post );
curl_setopt ($ch, CURLOPT_RETURNTRANSFER ,true);

$xpl= curl_exec ($ch );

$res=preg_match('/text-align: left;(.*)<\/td>/', $xpl);

echo $res;

Compartilhar este post


Link para o post
Compartilhar em outros sites
<?php

$xpl ='<table width="578" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="Texto" align="center">
<table width="440" border="0" cellpadding="3" cellspacing="0">
<tbody>
<tr>
<td style="text-align: left;">
<li><font color="red"><b><a href="http://www619.megaupload.com/files/8f2966ca9e9a4d1a2c76d05c6095a060/Crash Team Racing Portable.rar" target="_blank">http://www619.megaupload.com/files/8f2966ca9e9a4d1.....</a></b></font></li></td></tr></tbody></table>
</td>
</tr>
</table>
</form></td>
</tr>
</table>';

preg_match( '/<a href="([a-zA-Z0-9\/\s\.:]+)" target="_blank">/i', $xpl, $matches );


echo $matches[1],'<br /><br /><pre>';

var_dump( $matches );

Compartilhar este post


Link para o post
Compartilhar em outros sites

agora ele retonou o link, porem, o codigo não pode ficar assim porque o valor do $xpl e recebido atraves de cURL, ele ate mostrou alguns link da seguinte forma:

 

curl_setopt ($ch , CURLOPT_URL ,  'http://www.site.com.br/pagina.php');
curl_setopt ($ch , CURLOPT_POSTFIELDS ,  'url='.$post );
curl_setopt ($ch, CURLOPT_RETURNTRANSFER ,true);


$xpl= curl_exec ($ch );

 

gostaria que ficase assim:

$xpl= curl_exec ($ch );
preg_match( '/<a href="([a-zA-Z0-9\/\s\.:]+)" target="_blank">/i', $xpl, $matches );


       echo $matches[1],'<br /><br /><pre>';

       var_dump( $matches );

 

porem não mostrou o link que eu quero =(

Compartilhar este post


Link para o post
Compartilhar em outros sites

só você melhorar a ER amigo.. te deixei uma dica ai.

 

outra opção é esta:

http://forum.imasters.com.br/index.php?/topic/416525-obter-link-premium-do-megaupload-atualizado/

Compartilhar este post


Link para o post
Compartilhar em outros sites

só você melhorar a ER amigo.. te deixei uma dica ai.

 

outra opção é esta:

http://forum.imasters.com.br/index.php?/topic/416525-obter-link-premium-do-megaupload-atualizado/

 

só mais uma duvida será que antes de executar o preg_match( '/<a href="([a-zA-Z0-9\/\s\.:]+)" target="_blank">/i', $xpl, $matches );

 

não teria como eu "puxar" o html da pagina ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

?

 

é exatamente isso que você esta fazendo com o curl_exec(), 'puxando' o html da página.

não entendi oque você quis dizer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

?

 

é exatamente isso que você esta fazendo com o curl_exec(), 'puxando' o html da página.

não entendi oque você quis dizer.

 

e que quando eu coloco no script o código puro igualando o $xpl dessa forma:

$xpl ='<table width="578" border="0" cellspacing="0" cellpadding="0">
       <tr>
       <td class="Texto" align="center">
       <table width="440" border="0" cellpadding="3" cellspacing="0">
       <tbody>
       <tr>
       <td style="text-align: left;">
       <li><font color="red"><b><a href="http://www619.megaupload.com/files/8f2966ca9e9a4d1a2c76d05c6095a060/Crash Team Racing Portable.rar" target="_blank">http://www619.megaupload.com/files/8f2966ca9e9a4d1.....</a></b></font></li></td></tr></tbody></table>
       </td>
       </tr>
       </table>
       </form></td>
       </tr>
       </table>';

 

ele retorna o link certinho, é dessa forma:

 

$xpl =$xpl= curl_exec ($ch );

 

ele retorna outros links que tem na pagina e nao retorna o que eu preciso

Compartilhar este post


Link para o post
Compartilhar em outros sites

Percebi uma diferença aqui, quando eu abro o código fonte usando o mozila firefox o link que eu quero aparece dentro do codigo fonte, já quando eu abro o codigo com outro navegador para ver o código fonte a parte do código que eu preciso não aparece, vejam:

Aqui é o código visualizado com mozila:

<form id="form1" name="form1" method="post" action="">
           <table width="578" border="0" cellspacing="0" cellpadding="0">
             <tr>
               <td class="TextoNomePlanos">
               <style type="text/css">
.ppp    {
border-style: dashed;
color: #FF0000;
border-bottom-width: 1px;
border-top-width: 1px;
border-right-width: 1px;
border-left-width: 1px;
border-color: #FF9F11;

}         </style>


       <!-- <table width="578" border="0" cellspacing="0" cellpadding="0">
             <tr>
             <td align="center" class="ppp"><u>Fileserve.com</u> liberado gratuitamente. Em testes!</td>
             </tr>
           </table>-->  

<BR>Insira o(s) link(s) para download:</td>
             </tr>
           </table>
           <table width="578" border="0" cellspacing="0" cellpadding="0">
             <tr>
               <td align="center"><textarea name="url" cols="80" rows="5" class="Border02" id="textarea"></textarea></td>
             </tr>

           </table>

           <table width="578" border="0" cellspacing="0" cellpadding="0">
             <tr>
               <td align="center"><input name="button" type="image" id="button" value="Submit" src="images/link.jpg" /></td>
             </tr>
           </table>
           <table width="578" border="0" cellspacing="0" cellpadding="0">
             <tr>

               <td class="Texto" height="5"></td>
             </tr>
           </table>
           <table width="578" border="0" cellspacing="0" cellpadding="0">
             <tr>
                    <td class="Texto" align="center">
                <table width="440" border="0" cellpadding="3" cellspacing="0">
 <tbody>
  <tr>

           <td style="text-align: left;">
<li><font color="red"><b><a href="http://www757.megaupload.com/files/a1bc4a35b00f61e58c1be2c6054d46cc/ADW-One_Piece_042.mp4"  target="_blank">http://www757.megaupload.com/files/a1bc4a35b00f61e.....</a></b></font></li></td></tr></tbody></table>
</td>
             </tr>
           </table>
         </form>

 

aqui o codigo visualizado com google chrome por exemplo:

<br /> 
<font size='1'><table class='xdebug-error' dir='ltr' border='1' cellspacing='0' cellpadding='1'> 
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Notice: Undefined index: link in D:\Servers\wamp\www\Megaupload\get.php on line <i>2</i></th></tr> 
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr> 
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr> 
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0009</td><td bgcolor='#eeeeec' align='right'>376440</td><td bgcolor='#eeeeec'>{main}(  )</td><td title='D:\Servers\wamp\www\Megaupload\get.php' bgcolor='#eeeeec'>..\get.php<b>:</b>0</td></tr> 
</table></font> 
<br /> 
<font size='1'><table class='xdebug-error' dir='ltr' border='1' cellspacing='0' cellpadding='1'> 
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Warning: preg_match() expects parameter 2 to be string, object given in D:\Servers\wamp\www\Megaupload\get.php on line <i>40</i></th></tr> 
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr> 
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr> 
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0009</td><td bgcolor='#eeeeec' align='right'>376440</td><td bgcolor='#eeeeec'>{main}(  )</td><td title='D:\Servers\wamp\www\Megaupload\get.php' bgcolor='#eeeeec'>..\get.php<b>:</b>0</td></tr> 
<tr><td bgcolor='#eeeeec' align='center'>2</td><td bgcolor='#eeeeec' align='center'>2.0685</td><td bgcolor='#eeeeec' align='right'>416488</td><td bgcolor='#eeeeec'><a href='http://www.php.net/preg_match' target='_new'>preg_match</a> 
(  )</td><td title='D:\Servers\wamp\www\Megaupload\get.php' bgcolor='#eeeeec'>..\get.php<b>:</b>40</td></tr> 
</table></font> 
<br /><br /><pre>

 

tem uma opção que e inspecionar elemento, usando essa opção aparece o codigo igual no mozila... sera que isso tudo tem alguma coisa haver?

Compartilhar este post


Link para o post
Compartilhar em outros sites

se só aparece com o firefox, manda o cabeçalho de user-agent com o cURL, definindo o user-agent do firefox

Veja se é assim:

 

<?php
$post =$_POST['link'];
$ch = curl_init ();

curl_setopt ($ch , CURLOPT_URL ,  'http://www.site.com.br/login.php' );

curl_setopt ($ch , CURLOPT_POST ,  1 );
curl_setopt ($ch , CURLOPT_POSTFIELDS ,  'email=meuuser&senha=minhasenha' );

// IMITAR O COMPORTAMENTO DO NAVEGADOR clássico: lidar com cookies
curl_setopt ($ch , CURLOPT_COOKIEJAR ,  'cookie.txt' );

curl_setopt ($ch, CURLOPT_RETURNTRANSFER ,true);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION,true);

// Executar primeiro PEDIDO (Login Form)
curl_exec ($ch);

//Executa o script em si para gerar o link
curl_setopt ($ch , CURLOPT_URL ,  'http://www.site.com.br/pagina.php');
curl_setopt ($ch , CURLOPT_POSTFIELDS ,  'url='.$post );
curl_setopt ($ch, CURLOPT_RETURNTRANSFER ,true);
curl_setopt ($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');


$xpl= curl_exec ($ch );
preg_match_all( '/<a href="([a-zA-Z0-9\/\s\.:]+)" target="_blank">/i', $xpl, $matches );


      echo $matches[1],'<br /><br /><pre>';

       var_dump( $matches );


?>

 

Seria algo assim

www.andrewd.com.br/megau

 

mais ou menos isso andre, porem o seu parece ser apenas um burlador do tempo que se espera para baixar, o meu gera um link premium mesmo, usando uma contapremium.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O meu também, a unica diferença é que ele gerar contas normais, pois está em desenvolvimento e não estou usando um array de contas premium para disponibilizar, se vai uma outra dica p/ você, o megaupload bloquea a cada 4 ip simultaneos, ou seja, se você gerar apenas 1 conta premium e o 4 nego estiver usando ao mesmo tempo = blocked.

 

Por isso ainda está em desenvolvimento, estou estudando uma forma dele não bloquear a cada 4 conexões simultaneas :P

E se isso serve como conselho, lei o post do André que já é a base p/ você começar ele se encontra no post #11 do William acima.

Compartilhar este post


Link para o post
Compartilhar em outros sites

então pessoal, da forma que o Beraldo me recomendou ainda continua com o mesmo resultado(sem o link desejado).

 

já que o link fica compreendido entre:

 

<tbody>

<tr>

<td style="text-align: left;">

<li><font color="red"><b><a href="http://www757.megaupload.com/files/f25f8d5ae3eca68aea1af03d7165bc35/ADW-One_Piece_042.mp4" target="_blank">http://www757.megaupload.com/files/f25f8d5ae3eca68.....</a></b></font></li></td></tr></tbody>

 

qual seria a forma para eu filtrar para exibir apenas a parte que está entre as escritas laranjadas?

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.