حل شده

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

بازدید43.6kپست ها4آخرین فعالیت2 سال پیش
1
1

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

4 پاسخ

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 هست. میتونید این کدها رو توی یه فایل ذخیره و اجرا کنید. البته قطعا نیاز به ویرایش کدها هم دارید. اگر بازبان های برنامه نویسی دیگه ای کار میکنید مثل جاوا پایتون یا سی شارپ. با اونها هم میشه همین کارو کرد اما معمولا کمی سخت تره. ___ یه موردی رو هم بگم. اگر فقط واسه پاس کردن واحد پروژه اینارو میخواین و علاقه ایبه برنامه نویسی ندارید بهتره بدید یکی از دوستاتتون یا هر شخص دیگه ای براتون انجام بده. توضیحشم بده که بتونید دفاع کنید.

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

سوال برنامه نویسی دارید؟

هیچ وقت در پرسیدن سوال شک نکنید

خوش آمدید

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