نمایش نتایج 1 تا 4 از 4

نام تاپیک: ربات دسته بندی و پوشه بندی فایل های دانلود شده از سایت مقالات gigapars

  1. #1

    ربات دسته بندی و پوشه بندی فایل های دانلود شده از سایت مقالات gigapars

    سلام
    من یک ربات نوشتم که کل لینکهای دانلودی سایت گیگاپارس به آدرس زیر و لیست کرده و ریختمش تو یک فایل تکستtxr
    http://gigapaper.ir/Articles/

    و اونو دادم به internet download manager و دانلود کرد و 34 گیگابایت شد جحم فایل ها

    مورد اول : خوب IDM فایل های تکراری و یک عدد _2 _3 _4 اضافه میکنه و موقع کپی پیست شدن (چون همه جور پسوند هست توش (داکت / زیپ و آهنگ و ورد و و و ) ) شاید یک متن copy off بزاره اول یا آخرش

    در نهایت عرض بنده :
    من همه این فایل ها و زیختم یک جا
    میخوام با یک برنامه این فیال ها و به کمک لیست آدرس اصلی اونا بزارم تو فولدر هاشون یعنی دسته بندی کنم که فلان فایل باید تو کدوم فولدر باشه مثال :
    http://gigapaper.ir/Articles/..Standards/ASE/sasanghom/Flow%20Visualization%20Study%20of%20the%20Intake%2  0Process%20of%20an%20Internal%20Combustion%20Engin  e.pdf


    آدرس :
    http://gigapaper.ir/Articles/
    این روت سایت بوده پس اینو بیخیال
    از اون به بعد :
    فولد : ..Standards
    و بعدش تو اون فولدر : ASE و تو اون sasanghom و در نهایت فایل Flow%20Visualization%20Study%20of%20the%20Intake%2 0Process%20of%20an%20Internal%20Combustion%20Engin e.pdf
    تو اون قولدر آخری باید باشه

    سوال اول اینکه باید یک برنامه باشه که این فولدر ها تو در تو و با رعایت اینکه فولدر های تکراری و نادیده بگیرو و بسازه
    و این فایل ها و تو فایلهای موجود جستجو کنه و نام های دقیقا یکی ( نام اصلی فیال در لینک اصلی و نا فایل موجود در کامپیوتر من که دانلود شده ) و انتفقال بده به مسیر واقعی خودش

    نام و فولدر و فایل های دارای نام فارسی موجود در لیست یا فولدر ساخته نمیشن یا اینکه بعضی از کاراکتر ها اصلا قابل استفاده نیستند و php اونا و علامت سوال میزاره

    من لینک فایل ها و میزارم براتون کسی میتونه چک کنه چیکار باید کنم ؟
    این برنامه میخواد تو لوکال اجرا بشه تا فایل هام دسته بندی بشن


    برنامه ها که نوشتم و میزارم تا کسی خواست استفاده کنه :

    این واسه لیست کردن (جمع کردن لینک دانلود ) :
    <?php
    mb_detect_order("ASCII,UTF-8,ISO-8859-1,windows-1252,iso-8859-15");
    function loadNprepare($url,$encod='') {
    $content = file_get_contents($url);
    if (!empty($content)) {
    if (empty($encod))
    $encod = mb_detect_encoding($content);
    $headpos = mb_strpos($content,'<head>');
    if (FALSE=== $headpos)
    $headpos= mb_strpos($content,'<HEAD>');
    if (FALSE!== $headpos) {
    $headpos+=6;
    $content = mb_substr($content,0,$headpos) . '<meta http-equiv="Content-Type" content="text/html; charset='.$encod.'">' .mb_substr($content,$headpos);
    }
    $content=mb_convert_encoding($content, 'HTML-ENTITIES', $encod);
    }
    $dom = new DomDocument;
    $res = $dom->loadHTML($content);
    if (!$res) return FALSE;
    return $dom;
    }

    function get_files($link)
    {

    $dom = loadNprepare($link);
    foreach($dom->getElementsByTagName('table') as $info_table) {
    $atr_class = $info_table->getAttribute('class');
    if($atr_class == 'table') {
    foreach( $info_table->getElementsByTagName( 'tr' ) as $tr ) {
    foreach( $tr->getElementsByTagName( 'a' ) as $a ) {

    if($a->getAttribute('class')=='item dir') {
    get_files('http://gigapaper.ir/Articles/'.$a->getAttribute('href'));
    }
    elseif($a->getAttribute('class')=='item file')
    {
    echo 'http://gigapaper.ir/Articles/'.$a->getAttribute('href');
    }
    }



    }
    }
    }


    }

    $ar = get_files('http://gigapaper.ir/Articles/?m');
    ?>


    از نسخه موبایل بروز کردم که حجم صفحات کم بشه و سرور این و لیست کرد تا سرعت بالابره و زود لیست تموم بشه
    چون نزدیک به 16 هزار لینک دانلود تولید کرده
    و 34 گیگ حجم

    با این خواستم خودش تو سرور هم دانلود کنه هم بزاره تو فولدر خودش ( سرجاش ) اما به نتیجه نرسیدم و با دانلود منیجر دانلود کردم
    <?php
    $sp = "\\";
    set_time_limit(0);
    $link = file('link.txt');
    for($i=0;$i<count($link);$i++)
    {
    $url = str_replace("http://gigapaper.ir/","",$link[$i]);
    $file_data = folders($url);
    if(!file_exists( $file_data['save_dir'].$sp.$file_data['file_name']) )
    {
    /*
    if(getfile($link[$i],$file_data['save_dir'].$sp.$file_data['file_name'])) {
    ?>
    <a href="http://ppage.ir/robo/<?php echo $url; ?>"><?php echo end(explode("/",$url)); ?></a><br/>
    <?php
    }
    */
    }

    }


    function getfile($url, $dir){
    return file_put_contents($dir, file_get_contents($url));
    }
    function folders($url)
    {
    global $sp;
    $parts = explode("/",$url);
    chdir(dirname(__FILE__));
    $dir = dirname(__FILE__);
    $url2 = dirname(__FILE__);
    $data = array();
    $data['file_name'] = $parts[count($parts)-1];
    for($i=0;$i<count($parts)-1;$i++)
    {
    if(is_dir($parts[$i]))
    {
    chdir($dir.$sp.$parts[$i]);
    $dir = $dir.$sp.$parts[$i];
    }
    else
    {

    if(!mkdir($parts[$i]))
    {
    echo "DIR : ".$dir."<br/";
    echo "File : ".$parts[$i]."<br/>";
    }
    chdir($dir.$sp.$parts[$i]);
    $dir = $dir.$sp.$parts[$i];
    }
    $url2 .= $sp.$parts[$i];
    }
    $data['save_dir'] = $url2;
    return $data;


    }


    ?>


    نهایتا
    من یک فایل دارم به نام ایکس تو حلقه خودم چک میکنم با دستور file_exists
    اما پیدا نمیکنه اما خارج از حلقه میگه هست !
    <?php
    header('Content-Type: text/html; charset=utf-8');
    mb_internal_encoding('utf-8');
    set_time_limit(0);
    $sp = "\\";
    $loc = dirname(__FILE__).'\\gigapars';

    $link = file('link.txt');

    function decode_characters($info)
    {
    // $info = mb_convert_encoding(, "HTML-ENTITIES", "UTF-8");
    //$info = preg_replace('~^(&([a-zA-Z0-9]);)~',htmlentities('${1}'),$info);
    return(urldecode($info));
    }

    function files($path,&$files = array())
    {
    $dir = opendir($path."/.");
    while($item = readdir($dir))
    if(is_file($sub = $path."/".$item))
    $files[] = $item;else
    if($item != "." and $item != "..")
    files($sub,$files);
    return($files);
    }
    $all_files = files(dirname(dirname(__FILE__)));
    print_r($all_files);
    for($i=100;$i<105;$i++)
    {
    $name = decode_characters($link[$i]);
    $name = explode('/',$name);
    $name = end($name);
    if(in_array($name,$all_files, false))
    echo $name." <span style='color:green;'> hast</span><br/>";
    else
    echo $name." <span style='color:red;'> nist</span><br/>";

    }


    /*
    for($i=0;$i<400;$i++)
    {

    $url = str_replace("http://gigapaper.ir/","",$link[$i]);
    $file_data = folders($url);
    if(!file_exists( $file_data['save_dir'].$sp.$file_data['file_name']) )
    {

    if(getfile($link[$i],$file_data['save_dir'].$sp.$file_data['file_name'])) {
    ?>
    <a href="http://ppage.ir/robo/<?php echo $url; ?>"><?php echo end(explode("/",$url)); ?></a><br/>
    <?php
    }

    }


    }
    */

    function getfile($url, $dir){
    return file_put_contents($dir, file_get_contents($url));
    }
    function folders($url)
    {
    global $sp;
    $parts = explode("/",$url);
    chdir(dirname(__FILE__));
    $dir = dirname(__FILE__);
    $url2 = dirname(__FILE__);
    $data = array();
    $data['file_name'] = $parts[count($parts)-1];
    for($i=0;$i<count($parts)-1;$i++)
    {
    if(is_dir($parts[$i]))
    {
    chdir($dir.$sp.$parts[$i]);
    $dir = $dir.$sp.$parts[$i];
    }
    else
    {

    if(!mkdir($parts[$i]))
    {
    echo "DIR : ".$dir."<br/";
    echo "File : ".$parts[$i]."<br/>";
    }
    chdir($dir.$sp.$parts[$i]);
    $dir = $dir.$sp.$parts[$i];
    }
    $url2 .= $sp.$parts[$i];
    }
    $data['save_dir'] = $url2;
    return $data;


    }


    ?>



    لیست دانلود و ضمیمه کردم

    هرکس تونست بدون اررور کل فایل ها و فولدر ها و بسازه بهم خبر بده و اگه لطف کنه که زیپ کنه فولدر های خالی و برام بفرسته خوب میشه
    چون کاراکترهای خاص داره مثل f که و انتگرال داریم !

    ٌS¬ƒsnƒ - ل¬dƒO8 ¬n¬n ¼8¬n

    این یک نمونه از اسماشه
    که البته اسکی کد داره و سعی کردم تو مرورگر نشون بدمش اما یک کاراکتر مشکی نمایش میداد که فک کنم تشخصی میده اما یونیکد مرورگر نمیتونه اونو نماش بده و فک کنم بشه همون اسکی و واسه ساختن اسم فایل و فولدر استفاده کرد چچون خلصه ی کاراکتر معتبر و دارای کد اسکس هست دیگه
    امیدوارم این اسم ها تو پیدا کردن فایل باعث مشکل نشند

    فکر دیگه که به ذهنم دسید این که این لست داتلود و بریزم تو باینک و بیام یک برنامه بنویسم که لیست درست کنه که بشه فهمید فلان لینک چندتا فایل مال اون لینک دانلود پیدا میشه
    اخه ممکنه یک لینک یا اصللا فیالش پیدا نشه یا چندتا پیدا بشه
    فایل های ضمیمه فایل های ضمیمه

  2. #2

    نقل قول: ربات دسته بندی و پوشه بندی فایل های دانلود شده از سایت مقالات gigapars

    درود بر شما

    من اینو تست کردم جواب داد ، شما یه تست بگیر ببین کار میده ( بدون اون کاراکتر ها البته ) :


    <?php
    $link = "http://gigapaper.ir/Articles/..Standards/ASE/sasanghom/Flow%20Visualization%20Study%20of%20the%20Intake%2 0Process%20of%20an%20Internal%20Combustion%20Engin e.pdf
    ";
    $link = utf8_decode(urldecode($link));
    $link = str_replace('http://gigapaper.ir/Articles/', '', $link);


    $list = array();
    $filename = substr($link,strripos($link, '/')+1);
    $link = substr($link,0,strripos($link, '/'));

    while($num = strripos($link, '/'))
    {
    $list[] = substr($link,$num+1);
    $link = substr($link,0,$num);

    }
    $list[] = $link;
    krsort($list);
    print_r($list);

    foreach($list as $val)
    {
    mkdir($val);
    chdir($val);
    }

    ?>
    آخرین ویرایش به وسیله WOLF_MEHRDAD : جمعه 16 فروردین 1392 در 14:06 عصر

  3. #3

    نقل قول: ربات دسته بندی و پوشه بندی فایل های دانلود شده از سایت مقالات gigapars

    داداش url decoder رو اضافه کردم تست کن ببین جواب میده؟

  4. #4

    نقل قول: ربات دسته بندی و پوشه بندی فایل های دانلود شده از سایت مقالات gigapars

    مشکل من همون یک لینک نیست نزدیک به 16 هزار لینک + ساخت پوشه های تو در تو اون ها + پیدا کردن فایل مربوطه و جابجایی اون فایل
    ممنون

تاپیک های مشابه

  1. نمایش حجم فایل های دانلود شده کلاینت در سرور
    نوشته شده توسط silverm در بخش C#‎‎
    پاسخ: 1
    آخرین پست: پنج شنبه 02 آبان 1392, 23:46 عصر
  2. سوال: اجرای برنامه های دانلود شده از سایت Asp.net
    نوشته شده توسط raminsalmani در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: شنبه 23 مهر 1390, 18:25 عصر
  3. حجم یا طلاعاتی در مورد فایل های دانلود شده
    نوشته شده توسط exir865 در بخش برنامه نویسی مرتبط با شبکه و وب در VB6
    پاسخ: 4
    آخرین پست: سه شنبه 12 مرداد 1389, 23:00 عصر
  4. سوال: انتخاب مکان برای فایل های آپلود شده در سایت
    نوشته شده توسط fa_karoon در بخش ASP.NET Web Forms
    پاسخ: 3
    آخرین پست: یک شنبه 26 اردیبهشت 1389, 19:31 عصر
  5. اشکال در sql server و فایل های دانلود شده از سایت مایکروسافت
    نوشته شده توسط amuSoheil در بخش مسائل مرتبط با نصب و راه اندازی
    پاسخ: 6
    آخرین پست: چهارشنبه 22 مرداد 1382, 00:51 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •