راهنمایی در ساخت crawler

حل شده 

#C

توسط arashgsm در 1 سال پیش
1 43.3k 4 1 سال پیش
arashgsm reza-irdev
1

سلام من یه پروژه ساده دانشجویی دارم که باید یه crawler بسازم به این صورت که متن های سایت رو استخراج کنه و بریز توی یه برنامه ایی مانند نوت پد و به من تحویل بده و با c# و یا هر زبانی دیگه میتونم بنویسم ولی به نظرم c# بهتره و با پایتون هم میشه نوشت ولی نمیتونم از کتابخونه هایی استفاده کنم که کارو خیلی راحت بکنه به خاطر همین میخام با c# بنویسم اگر کسی بلده راهنمایی کنه و بگه چطوری شروع کنم چون زیاد تسلط ندارم روی این موضوع و زبان مرسی اگر خواستید ایمیل بزنید ایمیل : malekiarash2016@gmail.com

پاسخ ها

0

از وقتی من یادمه همیشه نیمی از پروژه های پیشنهادی اساتید ساخت Crawler بوده نمیدونم علتش چیه :) خیلی راحته. پیشنهاد من استفاده از زبان PHP هست.

نمونه کد (منبع https://stackoverflow.com/a/2313270/8352986):

<?php
function crawl_page($url, $depth = 5)
{
    static $seen = array();
    if (isset($seen[$url]) || $depth === 0) {
        return;
    }

    $seen[$url] = true;

    $dom = new DOMDocument('1.0');
    @$dom->loadHTMLFile($url);

    $anchors = $dom->getElementsByTagName('a');
    foreach ($anchors as $element) {
        $href = $element->getAttribute('href');
        if (0 !== strpos($href, 'http')) {
            $path = '/' . ltrim($href, '/');
            if (extension_loaded('http')) {
                $href = http_build_url($url, array('path' => $path));
            } else {
                $parts = parse_url($url);
                $href = $parts['scheme'] . '://';
                if (isset($parts['user']) && isset($parts['pass'])) {
                    $href .= $parts['user'] . ':' . $parts['pass'] . '@';
                }
                $href .= $parts['host'];
                if (isset($parts['port'])) {
                    $href .= ':' . $parts['port'];
                }
                $href .= dirname($parts['path'], 1).$path;
            }
        }
        crawl_page($href, $depth - 1);
    }
    echo "URL:",$url,PHP_EOL,"CONTENT:",PHP_EOL,$dom->saveHTML(),PHP_EOL,PHP_EOL;
}
crawl_page("http://hobodave.com", 2);

قسمت اصلیش که لود کردن فایل(صفحه وب) هست:

@$dom->loadHTMLFile($url);
0

> از وقتی من یادمه همیشه نیمی از پروژه های پیشنهادی اساتید ساخت Crawler بوده نمیدونم علتش چیه :) خیلی راحته. پیشنهاد من استفاده از زبان PHP هست. نمونه کد (منبع https://stackoverflow.com/a/2313270/8352986): ``` <?php function crawl_page($url, $depth = 5) { static $seen = array(); if (isset($seen[$url]) || $depth === 0) { return; } $seen[$url] = true; $dom = new DOMDocument('1.0'); @$dom->loadHTMLFile($url); $anchors = $dom->getElementsByTagName('a'); foreach ($anchors as $element) { $href = $element->getAttribute('href'); if (0 !== strpos($href, 'http')) { $path = '/' . ltrim($href, '/'); if (extension_loaded('http')) { $href = http_build_url($url, array('path' => $path)); } else { $parts = parse_url($url); $href = $parts['scheme'] . '://'; if (isset($parts['user']) && isset($parts['pass'])) { $href .= $parts['user'] . ':' . $parts['pass'] . '@'; } $href .= $parts['host']; if (isset($parts['port'])) { $href .= ':' . $parts['port']; } $href .= dirname($parts['path'], 1).$path; } } crawl_page($href, $depth - 1); } echo "URL:",$url,PHP_EOL,"CONTENT:",PHP_EOL,$dom->saveHTML(),PHP_EOL,PHP_EOL; } crawl_page("http://hobodave.com", 2); ``` قسمت اصلیش که لود کردن فایل(صفحه وب) هست: ``` @$dom->loadHTMLFile($url); ```

سلام میشه یه توضیحی در مورد این کدها بدید؟ و توی چه برنامه ایی بنویسمش این کدهارو

0

کد php هست دیگه. اگر ویندوز دارید راحت ترین روش نصب xampp یا wamp server هست. میتونید این کدها رو توی یه فایل ذخیره و اجرا کنید. البته قطعا نیاز به ویرایش کدها هم دارید. اگر بازبان های برنامه نویسی دیگه ای کار میکنید مثل جاوا پایتون یا سی شارپ. با اونها هم میشه همین کارو کرد اما معمولا کمی سخت تره.


یه موردی رو هم بگم. اگر فقط واسه پاس کردن واحد پروژه اینارو میخواین و علاقه ایبه برنامه نویسی ندارید بهتره بدید یکی از دوستاتتون یا هر شخص دیگه ای براتون انجام بده. توضیحشم بده که بتونید دفاع کنید.

آخرین ویرایش: 15-05-2018 ساعت 12:27، توسط Reza
0

> کد php هست دیگه. اگر ویندوز دارید راحت ترین روش نصب xampp یا wamp server هست. میتونید این کدها رو توی یه فایل ذخیره و اجرا کنید. البته قطعا نیاز به ویرایش کدها هم دارید. اگر بازبان های برنامه نویسی دیگه ای کار میکنید مثل جاوا پایتون یا سی شارپ. با اونها هم میشه همین کارو کرد اما معمولا کمی سخت تره. ___ یه موردی رو هم بگم. اگر فقط واسه پاس کردن واحد پروژه اینارو میخواین و علاقه ایبه برنامه نویسی ندارید بهتره بدید یکی از دوستاتتون یا هر شخص دیگه ای براتون انجام بده. توضیحشم بده که بتونید دفاع کنید.

دوست عزیز میشه یه راه ارتباطی به من بدید شماره تلفن -ایدی تلگرام

خوش آمدید

برای طرح سوال، ایجاد بحث و فعالیت در سایت نیاز است ابتدا وارد حساب کاربری خود شوید. در صورتی که هنوز عضو سایت نیستید میتوانید در عرض تنها چند ثانیه ثبت نام کنید.

لطفا ابتدا لاگین کنید