سلام
من یه پروژه ساده دانشجویی دارم که باید یه crawler بسازم به این صورت که متن های سایت رو استخراج کنه و بریز توی یه برنامه ایی مانند نوت پد و به من تحویل بده
و با c# و یا هر زبانی دیگه میتونم بنویسم ولی به نظرم c# بهتره و با پایتون هم میشه نوشت ولی نمیتونم از کتابخونه هایی استفاده کنم که کارو خیلی راحت بکنه به خاطر همین میخام با c# بنویسم
اگر کسی بلده راهنمایی کنه و بگه چطوری شروع کنم چون زیاد تسلط ندارم روی این موضوع و زبان
مرسی
اگر خواستید ایمیل بزنید
ایمیل : malekiarash2016@gmail.com
4 پاسخ
از وقتی من یادمه همیشه نیمی از پروژه های پیشنهادی اساتید ساخت 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);
سلام میشه یه توضیحی در مورد این کدها بدید؟
و توی چه برنامه ایی بنویسمش این کدهارو
کد php هست دیگه. اگر ویندوز دارید راحت ترین روش نصب xampp یا wamp server هست. میتونید این کدها رو توی یه فایل ذخیره و اجرا کنید. البته قطعا نیاز به ویرایش کدها هم دارید. اگر بازبان های برنامه نویسی دیگه ای کار میکنید مثل جاوا پایتون یا سی شارپ. با اونها هم میشه همین کارو کرد اما معمولا کمی سخت تره.
یه موردی رو هم بگم. اگر فقط واسه پاس کردن واحد پروژه اینارو میخواین و علاقه ایبه برنامه نویسی ندارید بهتره بدید یکی از دوستاتتون یا هر شخص دیگه ای براتون انجام بده. توضیحشم بده که بتونید دفاع کنید.
دوست عزیز میشه یه راه ارتباطی به من بدید
شماره تلفن -ایدی تلگرام
سوال برنامه نویسی دارید؟
ندونستن عیب نیست، نپرسیدن چرا!