Ищу Скачивания и сохранения веб страниц

Тема в разделе "Open Source", создана пользователем alex-bot, 17 июл 2011.

Модераторы: Amazko, Aste
  1. alex-bot

    alex-bot Nulled-Man

    Регистр.:
    4 май 2007
    Сообщения:
    498
    Симпатии:
    144
    Нужен любой скрипт которому на вход дам адреса URLs на выходе файлы страниц... можно однопоточный и без поддержки прокси...
     
  2. Urch

    Urch Вебмастер

    Регистр.:
    3 янв 2008
    Сообщения:
    263
    Симпатии:
    73

    такие проги которые выкачивают сайт полностью напр как teleport, DM может качать по списку урлов, парсер SJS например на форуме нуленный вроде валялся, а может и ошибаюсь)Скриптов Text Maker (вроде как в хтмл експортит), WebGrabber. Удачи!
     
  3. alex-bot

    alex-bot Nulled-Man

    Регистр.:
    4 май 2007
    Сообщения:
    498
    Симпатии:
    144
    teleport - может у меня старая версия, но урлы по списку точно не качает...
    парсер SJS - что-то знакомое, похож на тот что криво занулен, и парсить так и не смог...
    WebGrabber - полагаю от випбабло? - Он же по списку тоже не парсит...
    Фишка в том, что у сайта 100к+ паг, а мне нужно всего 50 страниц, парсеру нужна неделя, чтоб все это прочекать...
    DM, это так и не понял что... Text Maker (Sibir)... наверно про этот? Это не совсем тот... надо глянуть телепорт может уже новый есть...
    ЗЫ: Поэтому и ищу что попроще, чтоб без всяких инструкций...
     
  4. Urch

    Urch Вебмастер

    Регистр.:
    3 янв 2008
    Сообщения:
    263
    Симпатии:
    73
    Download Master, но тут зависит от структуры ссылок
    Content Downloader парсит по заданным ссылкам, на выходе можно задать html
     
    alex-bot нравится это.
  5. zzallexx

    zzallexx

    Регистр.:
    11 июн 2008
    Сообщения:
    1.035
    Симпатии:
    703
    ну как-то так :)
    PHP:
    <?php
    ini_set 
    ('default_charset','utf-8');
    function 
    get_web_page$url,$proxy=null)
    {
      
    $uagent "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8";
      
    $cookie $_SERVER['DOCUMENT_ROOT']."/cookie.txt";
     
      
    $ch curl_init$url );

      
    curl_setopt($chCURLOPT_RETURNTRANSFER1);  // возвращает веб-страницу
      
    curl_setopt($chCURLOPT_REFERER,"http://google.com");
      
    curl_setopt($chCURLOPT_HEADER0);           // не возвращает заголовки
      
    curl_setopt($chCURLOPT_FOLLOWLOCATION10);   // переходит по редиректам
      
    curl_setopt($chCURLOPT_ENCODING"");        // обрабатывает все кодировки
      
    curl_setopt($chCURLOPT_USERAGENT$uagent);  // useragent
      
    curl_setopt($chCURLOPT_CONNECTTIMEOUT20); // таймаут соединения
      
    curl_setopt($chCURLOPT_TIMEOUT20);        // таймаут ответа
      
    curl_setopt($chCURLOPT_MAXREDIRS10);       // останавливаться после 10-ого редиректа
      
    curl_setopt($chCURLOPT_COOKIEFILE$cookie);
      
    curl_setopt($chCURLOPT_COOKIEJAR$cookie);
      
    curl_setopt($chCURLOPT_PROXY$proxy);
      
      
    $content curl_exec$ch );
      
    $err     curl_errno$ch );
      
    $errmsg  curl_error$ch );
      
    $header  curl_getinfo$ch );
      
    curl_close$ch );

      
    $header['errno']   = $err;
      
    $header['errmsg']  = $errmsg;
      
    $header['content'] = $content;
      return 
    $header;
    }

    if (isset(
    $_POST['urls'])) {
    $text htmlspecialchars($_POST['urls']);
    if(
    $_POST['start']!="") {$start $_POST['start'];} else {$start "<body>";}
    if(
    $_POST['end']!="") {$end $_POST['end'];} else {$end "</body>";}
    if(
    $_POST['charset']!="") {$charset strtolower($_POST['charset']);} else {$charset "windows-1251";}
    $urls explode("\n",$text);
    echo 
    '<!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>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Парсер</title>
    </head>
    <body>'
    ;
    $c count($urls);
    for(
    $i=0;$i<$c;$i++){
    $url trim($urls[$i]);
    echo 
    "Парсим ".$url."<br>"flush();flush();
    $proxy "";//если надо прокси вписать проксю
    $result  get_web_page$url,$proxy);
    $content $result['content'];
    if(
    $charset !="utf-8"$content iconv($charset,'utf-8',$content);
    $p1=strpos($content,stripslashes($start));
    $p2=strpos($content,stripslashes($end));
    $txt=substr($content,$p1,$p2-$p1); 
    $fp fopen($i.".txt","w+");
    fwrite($fp,$txt);
    fclose($fp);
    }
    }
    else
    {
    echo 
    '<!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>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Парсер</title>
      
    </head>

    <body align="center">
    <h1>Парсер</h1>
    <form action="index.php"  method="post" enctype="multipart/form-data" name="parser" >
    <label>Вставьте урлы в формате http://site.ru <br><textarea name="urls" id="text" cols="110" rows="15"></textarea></label><br><br>
    <label>Начало парсинга: <input name="start" size=50 value=\'<div class="entry">\' type="text" /></label>
     <label>Конец парсинга: <input name="end" size=50 value=\'<p class="links">\' type="text" /></label><br><br>
    <label>Кодировка сайта: <input name="charset" type="text" value="windows-1251" /></label><br><br>
    <input name="submit" type="submit" value="Поехали" /></form><br>'
    ;
    }
    ?>
    </body>
    </html>
     
    alex-bot нравится это.
  6. alex-bot

    alex-bot Nulled-Man

    Регистр.:
    4 май 2007
    Сообщения:
    498
    Симпатии:
    144
    Взялся за изучение Content Downloader, благо даже лицензия есть, а надобности до сих пор не было впечатления супер, мега крутой парсер...
     
  7. lift

    lift Читатель

    Заблокирован
    Регистр.:
    1 июл 2007
    Сообщения:
    2.226
    Симпатии:
    1.377
    Во FlashGet скармливаеш текстовик со скиском урлов, он выкачивет все в 8 потоков. Тормозит правда если списки больше 5-10 тысяч, но до полумиллиона справляется точно. Если больше то можно текстовик на части порезать и скормить в несколько заходов + можно программу в разные папочки положить и независимо запускать.
    Может по маске сам сгенерить список урлов через меню "пакетное задание"
     
  8. BACZ

    BACZ

    Регистр.:
    18 июн 2008
    Сообщения:
    610
    Симпатии:
    386
    Если не критично именно скрипт, то годится wget с параметром -i. Если нужно с картинками и материалами до любого уровня вглубь, то c параметрами -r --level=
    Есть под Windows, есть под X, работает со списком файлов и тд.
     
  9. Красавчег

    Красавчег Завсегдатай

    Регистр.:
    15 мар 2010
    Сообщения:
    901
    Симпатии:
    297
    А я wget'ом так и не научился пользоваться :confused: когда нужно было, пользовал телепорт и ещё какую-то програмулину...
     
  10. Rovshan

    Rovshan Постоялец

    Регистр.:
    23 июл 2011
    Сообщения:
    133
    Симпатии:
    1
    httrack website copy.v google.super proga