[PHP] Torrent Crawler [PHP/AJAX]

Dieses Thema im Forum "Webentwicklung" wurde erstellt von powernator, 18. November 2008 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 18. November 2008
    Zuletzt von einem Moderator bearbeitet: 15. April 2017
    Torrent Crawler [PHP/aJaX]

    Hey

    In einem Thread kam die Frage bzgl. eines Torrent-Crawlers auf und ich habe mal einen geschrieben =P

    Er funktioniert über PHP (reguläre ausdrücke) und lädt die Ergebnisse schön mit aJaX (benutze JQuery).

    ########

    main.php
    PHP:
    <? php
    require_once  './global.php' ;
    ?>
    <html>
    <head>
      <script type="text/javascript" src="./jquery.js"></script>
      <script language="javascript">
      <!--
      function doSearch()
      {
        var searchquery = $("#search").attr("value");
        searchquery = escape(searchquery);<?php
        
    foreach ( $hosts  as  $hostname  =>  $params )
        {
          echo 
    "\n    $(\"#" . md5 ( $hostname ). "\").load(\"search.php?hostname=" . md5 ( $hostname ). "&search=\"+searchquery+\"\");" ;
        }
        echo 
    "\n  " ;
        
    ?>}
      -->
      </script>
    </head>
    <body>
    <input type="text" name="search" id="search" /> <input type="submit" value="Suchen!" onclick="javascript:doSearch();" />
    <?php
    foreach ( $hosts  as  $hostname  =>  $params )
    {
      echo 
    "<div id=\"" . md5 ( $hostname ). "\"><b> $hostname </b>:\n</div>\n" ;
    }
    ?>
    </body>
    </html>
    global.php
    PHP:
    <? php
    $hosts 
    = array(
      
    "Epicspeedload"  => array(
        
    "url"  =>  "http://epicspeedload.in" ,
        
    "surl"  =>  "http://epicspeedload.in/?q=%1" ,
        
    "regex"  =>  "/<a.*?href=\"(\/\?id=[0-9]{1,})\".*?>(.*?)<\/a>/ium"
      
    ),
      
    "Fettrap"  => array(
        
    "url"  =>  "http://fettrap.com" ,
        
    "surl"  =>  "http://fettrap.com/?q=%1" ,
        
    "regex"  =>  "/<a.*?href=\"(\/\?id=[0-9]{1,})\".*?>(.*?)<\/a>/ium"
      
    ),
      
    "DDL-Scene"  => array(
        
    "url"  =>  "http://ddl-scene.com" ,
        
    "surl"  =>  "http://ddl-scene.com/?q=%1" ,
        
    "regex"  =>  "/<a.*?href=\"(\/category\/.*?)\".*?>(.*?)<\/a>/ium"
      
    )
    );
    function 
    loadURLs ( $host $regex )
    {
      global 
    $links ;
      
      
    $array  = array();
      
      
    $contents  file_get_contents ( $host );
      
    preg_match_all ( $regex $contents $values );
      if (
    is_array ( $values [ 1 ]))
      for(
    $i = 0 ; $i < count ( $values [ 1 ]); $i ++)
      {
        
    $array [] = array( $values [ 1 ][ $i ],  $values [ 2 ][ $i ]);
      }
      
    $links [ $host ] =  $array ;
    }
    ?>
    Hosts kann man einfach zu dem array $hosts nach vorgegebenem Schema hinzufügen. Ich habe DDL-Scene dazugenommen, dass man einen regulären ausdruck sieht, der nicht mit einer ID arbeitet. [G]PHP reguläre ausdrücke[/G]
    Bei der Seite einfach den Begriff, der immer gesucht wird in die Variable %1 umwandeln.

    search.php
    PHP:
    <? php
    require_once  './global.php' ;
    $links  = array();

    foreach (
    $hosts  as  $hostname  =>  $params )
    {
      if (
    md5 ( $hostname )== $_GET [ 'hostname' ])
      {
        
    $found  true ;
        
    $suche  urlencode ( $_GET [ 'search' ]);
        
    loadURLs ( str_replace ( "%1" $suche $params [ 'surl' ]),  $params [ 'regex' ]);
        echo 
    "<b> $hostname </b>:<br /><pre>\n" ;
        foreach (
    $links  as  $value )
        {
          foreach (
    $value  as  $directlink )
          {
            
    $tryurl  str_replace (array( "/" "." ), array( "\/" "\." ),  $params [ 'url' ]);
            if (
    preg_match ( "/^ $tryurl /uism" $directlink [ 0 ]))  $link  $directlink [ 0 ];
            else 
    $link  $params [ 'url' ]. $directlink [ 0 ];
            echo 
    "<a href=\" $link \">" . addslashes ( $directlink [ 1 ]). "</a><br />\n" ;
          }
        }
      }
    }
    if (!
    $found ) die( "ung&uuml;ltiger host!" );
    ?>
    jquery.js gibt es bei Google Code zu downloaden.

    ########

    Das ganze kann man natürlich noch mit diversen JQuery-Effekten, sowie mit CSS verschönern, aber den Schnickschnacks habe ich erst einmal gelassen - da hat jeder ja individuelle Bedürfnisse, Wünsche und Vorstellungen.

    Feedback, Bewertungen und Thx sind gerne gesehen

    /// EDIT ///
    search.php - "$suche = addslashes($_GET['search']);" durch "$suche = urlencode($_GET['search']);" ersetzt
     
  2. 18. November 2008
    AW: Torrent Crawler [PHP/AJAX]

    Was hat das jetzt mit Torrent zu tun? Hättest das auch in Showcase packen können und die Codes hier in den Post anstatt in ne PHP und die dann auf XUP. Ist ja nich so viel. Find ich übrigens nich sooo gut, die Mischung aus PHP+JavaScript da im HTML Part... ^^
     
  3. 18. November 2008
    AW: Torrent Crawler [PHP/AJAX]

    mimimimi

    1. dict.cc | torrent | W&ouml;rterbuch Englisch-Deutsch (siehe erklärung #2)
    2. showcase gibts nimmer, aber mit php direkt posten hast recht
    3. machs besser
     
  4. 18. November 2008
    AW: Torrent Crawler [PHP/AJAX]

    Hatte es erst direkt als PHP-Code gepostet, werde es auch wieder so machen =P

    Im übrigen ist es keine einfache PHP/JS Mixtur, sondern PHP mit gewähltem AJAX-Code In verlinktem Thread hatte sich im übrigen gezeigt, dass es Probleme gab beim direkten laden von mehreren Hostern, das Problem wurde so gelöst. Außerdem kann man die Boxen schön(er) gestalten (z.B. mit toggle oder fadeIn).
     
  5. 18. November 2008
    AW: Torrent Crawler [PHP/AJAX]

    Ajax = JS (+ XMLHttpRequests) -> PHP/JS Mixtur.

    1. - Blablabla. Torrent ist für mich das Torrent "Netzwerk" wenn man das so nennen kann, und nicht das auslesen von Links von anderen Websites.
    2. Warum nicht?
    3. Vielleicht in einem langweiligen Moment.
     
  6. 18. November 2008
    AW: Torrent Crawler [PHP/AJAX]

    Ich habe mit Torrent hier aber nicht das Netzwerk kenannt, sondern (wie ja erkannt) das Auslesen von Torrent-Files.

    Naja, man kann sich über alles streiten Gab eben den konkreten Fall, dass das jemand brauchte und habe es gemacht.
     
  7. 18. November 2008
    AW: Torrent Crawler [PHP/AJAX]

    showcase is weg, weil da leider fast niemand was gepostet hat...

    du ließt aber keine torrent-files aus, sondern webseiten (bzw.: die download-links) ?
    ich glaub dann muss ich mich bei 1. doch telefonzelle anschließen^^
     
  8. 19. November 2008
    AW: Torrent Crawler [PHP/AJAX]

    Ja, stimmt =D Der Link zur Beschreibung des Torrent-Files wird ausgelesen =P
     
  9. 21. November 2008
    AW: Torrent Crawler [PHP/AJAX]

    hier ein Beispiel des scripts: crawLr
     
  10. 21. November 2008
    AW: Torrent Crawler [PHP/AJAX]


    Billige Kopie von Collectr?!^^
     
  11. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.