Página 1 de 2

Ayuda con descarga de página

NotaPublicado: 2014-05-08 10:56 @497
por BigBear
Tengo el siguiente código :

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!usr/bin/perl
  2.  
  3. use LWP::UserAgent;
  4.  
  5. my $nave = LWP::UserAgent->new();
  6. $nave->agent(
  7. "Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.12) Gecko/20080201Firefox/2.0.0.12"
  8. );
  9. $nave->timeout(5);
  10.  
  11. my $code = toma( "http://thepiratebay.se/search/" . "batman". "/0/99/0" );
  12.  
  13. print $code;
  14.  
  15. sub toma {
  16.    return $nave->get( $_[0] )->content;
  17. }
  18.  
  19. #The End ?
  20.  
  21.  
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Lo que pasa es que me devuelve código como esto :

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
j⌂ì▬╩■║å°Ì·Î̓→þ♠3mB╠l0r─◄┴↕☻J↓è(W┴9iµ  OXÑ.╣çEnðz%╔▬ê█Üõ÷ÇÿÝCæ¢É8F;SôDKÍzÀ-#ÅÇ↑
)*ù┼└[▀Û]O¶Ë¡ÌÁ«½ƒ░H♀ÀL☻┬×IOyB®pûzµ└+¤♀x╬☺1╗p½7mÀzÀ░¹j░Kgd→♦b╝3¹l◄yÖa┬¡÷éÈ↑│¥8┌2
µr▲~n↨ÿø§F¶Å♠ôƒ²?åôtt­Ón8Ð}c£M®¾å┘└Á←¸»¦H☼ã±õaÊ$¨É)êR♣Q¬ ÛFS♣▼2♣ƒ>d
┌├<3iÅ∟åÒa1ªÝãØÖa-♫?oú§µwv\HyÝåÙù´úi×Ū]£g?0ýúb┬∟æÿÕNß»♠N┴}♂╚±@┘‼ƒP╝±K»8¬Ý◄┌8╝«O
‗A▓í0_M╠-Jºð3ïÊd4á­♫Feô ¿¶§l¾ya[[P|╗│Þ;¶úcQãÞPõ¿↓Ô▒\â­ÒÖ·Áù`‗▬Ùâ´ç­â↕,è♦I|▲▼Ú´·Í
F├ÏÛq|5r▀├ƒ¤n<¥▼]╗8 ♂ÄSãï8c╝╚╣ÌÄj2Ün¬ñÀ®ä·§C♠♠∟&─q╩↕ø↑Pî←®▒öÌbM↓½       ¬ ¶·FÁ└³
╝A¹v¯­©É¶┌ü¹¾LJ╬FqÇ´│ó§C─♣┼Sô÷¯├┴õ°Û)ÁHv:<─Ë┐u☺¢%pjîþ┤ÒC7↔HI[╬µnÛÒ½╦‗ã¯×\♫>wÅ┐∟£
v☼.╬Å♫N ╝©<iéþÙ+Úm*í■ä;qéZ      ▄↕├اD←/©ðÿxK┤♂17Ƕ╩W­|múZ<▀fá²☻pGU     wÞÁßnI°è
┌°u1ÌQÂ┬╗çO+↨;§Úú¹À¥█B³ZC╔è°uÁä)̲☼    ý=iwÒ6ƃ'┐BݦmÆ-Ü↕eÀ☼╔┤_║;ÖõÑÅl║w2│ÆÍ☼$!ë
▬EÊ♦i[◄§▀À
 /ë▓öL&│¹v;y↕☺¶
uí¬pP>Þ´îƒø↨õ▓k_LNOÚdbøþ¦¯Y¤u^ƒ█þÄIë¾·┬ªÂ{¥?⌂¦OÈ ¹╗⌂x■·;X©æc·?É┐×µ[┼ºãk¾⌂n■Z⌂⌂∟µ
uBlƒû‼∟¦áý!<%t◄▄öv├(ëØYõÍÐ1;ùùØnçºãõ·yÏ^♫{▓▼÷$ç=¦☼{Ü├¥Ì☼¹:ç=█☼{û├×´ç=¤a/÷├^õ░ù¹
a/sX│╗▼Ïý▬ðµ☺ðà¯╠♥ög▬┌3☼PƒYÞ¤<@üfíA¾ §Üà♫═♥öh▬Z4☼PúYÞÐ<@æfíI¾ UÜà.{Þ▓WÞ▓wÇ.{Õ<<d
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Lo malo es que en todos los lenguajes de programación en que lo he hecho me devuelven este tipo de código.

¿ Por qué devuelve esto ? ¿ Hay alguna forma de ver el código fuente normal ?

Re: Ayuda con descarga de página

NotaPublicado: 2014-05-08 11:21 @515
por explorer
Lo que estás viendo es el contenido de la página comprimida con el método gzip.

Prueba:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
$ perl code_37144.pl |zcat |head -10
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
        <title>The Pirate Bay - The galaxy's most resilient bittorrent site</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <meta name="google-site-verification" content="bERYeomIC5eBWlPLupPPYPYGA9GvAUKzFHh3WIw24Xs" />
        <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="Search The Pirate Bay" />
        <link rel="stylesheet" type="text/css" href="/static/css-new/pirate6.css"/>
        <link rel="canonical" href="http://thepiratebay.se/search/batman/0/99/0" />
        <style type="text/css">
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

Esto es algo que se hace en la mayor parte de los servidores web, de forma automática: el usuario pide una página, el servidor lee la página desde su disco duro y la comprime en gzip y la envía. El navegador del usuario descomprime el archivo y la muestra en pantalla.

El objetivo es reducir el peso de la página (algo que es sencillo porque es básicamente texto) para que se transmita lo más rápidamente posible. Ya que tanto el emisor como el receptor tienen (hoy en día) procesadores potentes, el tiempo que se pierde en comprimir/descomprimir es menor que lo que se perdería si se transmitiese la página sin comprimir. Aunque actualmente hay líneas muy rápidas, el tráfico total crece mucho más rápido, y además, hay zonas del planeta con accesos mucho más lentos, así que este tipo de medidas siguen siendo necesarias.

Para que esto funcione, el cliente debe enviar en la cabecera HTTP una línea de este estilo:

Accept-Encoding: gzip,deflate,sdch

Cuando llega la petición al servidor, éste sabe que puede mandarle información comprimida, con esos métodos indicados.

Lo que tienes que hacer es mandar una petición al servidor que NO contenga esa cabecera. Por ejemplo:
Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
  1. $ perl -MLWP::Simple -E 'say get("http://thepiratebay.se/search/" . "batman". "/0/99/0")'
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Más información

Algo raro en ExploitDB

NotaPublicado: 2014-10-27 18:48 @825
por BigBear
Hola. Estoy haciendo un script para exploit db y normalmente me devuelve esto cuando lo cargo con LWP::UserAgent:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
▼      ♥Ý=kw┌╚ƃÖsµ?tõLÇÖÞ♣~bÒ\Ãv&ÖÁc»ÝõÌ╗↓▼N#5áDH→=♀L&¹█À¬▼B╝∟;cn╝þ@éæ║½½Ù]ı-!÷
×∟Ø↔^²¹³ÿ¶Ê¥O╬▀¢<ysH4¦4 Y?4═ú½#‗»ÎWº'─6,r§Ë ±R/♀¿oÜÃo5ó§Ê4jÿµ`00♠u#î╗µıà9D\6♫ûçz
S‼◄´↕ºGÒäÑ═wW»¶m═¶xR/§┘■Ùs‗←KÅ╝ÿ9)9 Ýä³wãÔ◄9▲2'CF÷L☺7×:á}ÍÈ\û8▒↨!HaNìÿ3ɃÏh►ãn2☼
LÓ )P.  ■Ho¿hıH↕;‼"c├╚☼¢Tw█å‼÷═AñKîf┌c}ûÿ↕└LFAJç=»█¾ßØ▓©n
Ez─:4¾Ë´@Ö cÊ   °$▀â♀y:& ébnÎÕ±TeÔ╣pÌ╦RÉÑ♫ðe"&/øë´╣,6U▼♀♀®╦\D¨Ôå┼M┤Y½,x)+^╩Ê^╦┬^
╦‼s▀æÝ[©s¢«7µIñ▼∟?ìÜO┌│╔g³ý .=±■dìZ-→Æ'^?
Òö♠Ú.÷~┴?Føãçí▼ãbäÙ%æOGìöÂ}ãí∟ƒÐ©Ð♫Ë▲?mC³Þãa▬©@)♀k¼╣←¯ûÙ‗╬üþª¢å]█ÂóíÇå,╬ÔF↕éD╔→Ñ
│)╔Á²ð¨┤@TØNgBN[jÆ(¶5`♥♀♥³þFêÌgØ4º#ó«♂Äı■│¡Iã-┴Á¥>┴¨¾ñ☻\ÎÕTèà▒♀Ýu┘─▒¡íó
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Cuando lo muestro con Perl hace el clásico efecto de \a\a\a varias veces y no veo el fuente.

¿ Alguien sabe qué es y cómo lo evito ?

Re: Ayuda con descarga de página

NotaPublicado: 2014-10-27 20:29 @895
por explorer
¿No es el mismo problema que el comentado más arriba?

Re: Ayuda con descarga de página

NotaPublicado: 2014-10-28 10:27 @477
por BigBear
¡Uf!, ni me acordaba de ese mensaje, debes tener memoria de troll :D explorer, una pregunta: ¿cómo hago eso mismo que hiciste con LWP::Simple pero con LWP::UserAgent en mi script¿ ¿Lo hago sin el agent?

Re: Ayuda con descarga de página

NotaPublicado: 2014-10-28 13:22 @598
por explorer
Puedes usar LWP::Simple porque está incluido junto con LWP::UserAgent en los módulos que acompañan a Perl.

Si miras el código fuente de LWP::Simple, verás que se puede importar la variable $ua que guarda el objeto LWP::UserAgent, así que sería algo así:

use LWP::Simple '$ua';

y ahora puedes hacer un

$ua->default_header('Accept-Encoding' => '');

y luego definir la cadena de agente, y ya tienes creado el objeto UserAgent. Ahora puedes hacer el get() del LWP::Simple.

Y si quieres hacerlo todo con LWP::UserAgent, solo necesitas agregar la línea anterior del Accept-Encoding (no probado).

Re: Ayuda con descarga de página

NotaPublicado: 2014-10-29 15:24 @683
por BigBear
Funciona a la perfección, explorer, gracias por la ayuda, el código raro que me estaba diciendo es que CloudFlare me bloqueó por cargarlos varias veces. Lo raro es que entro lo más bien desde cualquier navegador. Solo es con el script, probé cambiando el user agent pero el problema persiste. ¿ Alguna idea ?

Re: Ayuda con descarga de página

NotaPublicado: 2014-10-29 16:06 @713
por explorer
Yo usaría CloudFlare::Client o Mojo::Cloudflare, o WebService::CloudFlare::Host ;)

En la página de la API de CloudFlare se comenta que se puede interactuar con ellos por medio de POST usando LWP, en el caso de Perl. Los módulos indicados antes seguro que encapsulan la API en métodos, que luego hacen POST con LWP.

Re: Ayuda con descarga de página

NotaPublicado: 2014-10-29 16:27 @727
por BigBear
¿No habría una forma más sencilla como cambiando el referer o la IP o algo así ?

Lo que me devuelve es esto:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Sucuri WebSite Firewall - CloudProxy - Access Denied
What is going on?
You are not allowed to access the requested page. If you are the site owner, please open a ticket in our support page if you think it was caused by an error: https://support.sucuri.net. If you are not the owner of the web site, you can contact us at [email protected]. Also make sure to include the block details (displayed below), so we can better troubleshoot the error.
Block details

    Your IP: Loading...
    URL: Loading...
    Your Browser: Loading...
    Block ID: BNP002
    Block reason: Scanning tool blocked.
    Time: Loading...
    Server ID: cp71

Sucuri CloudProxy

CloudProxy is a WebSite Firewall from Sucuri. It stands between your site and the rest of the world and protects against attacks, malware infections, DDOS, brute force attempts and mostly anything that can harm it.

Not only that, but your sites get cached, speeding it up quite a bit. Interested? Visit http://cloudproxy.sucuri.net
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Lo bien raro es solo en esa parte de la página. Con el script mismo leo otras partes de la página sin problema alguno.

Re: Ayuda con descarga de página

NotaPublicado: 2014-10-29 16:48 @741
por explorer
¿No era CloudFlare? Vaya lío.

Pues no, no sé cómo resolverlo (tampoco me he puesto a mirarlo, ahora estoy muy ocupado).

¿Has probado con Google? Seguro que alguien ya lo ha intentado antes. Otra cosa es que lo haya contado.