PDA

View Full Version : ایندکس کردن چند سایت و جستجو در آنها



Captain T
شنبه 19 دی 1394, 02:20 صبح
سلام دوستان

دارم روی یک موتور جستجو کوچک کار می کنم که نهایت لیست ۱۰ تا سایت رو می گیره و مطالبشون ایندکس می کنه و درون مطالب جستجو انجام میده - تا یه حدی اطلاعات جمع آوری کردم ولی همچنان این سوالات رو دارم :

۱- چجوری با استفاده از آدرس سایت مطالبشون رو در دیتابیس ایندکس کنم!
۲- درون مطالب ایندکس شده چگونه سرچ رو انجام بدم !

دوستانی که با php کار کردن لطف کنن اگر مطلبی هست دریغ نکنن.

با تشکر از همگی

0xEHSAN
شنبه 19 دی 1394, 12:11 عصر
دوست عزیز باید یک خزنده تعریف کنی دانشت تو زبان php در چه سطحی هست؟

Captain T
شنبه 19 دی 1394, 12:26 عصر
دوست عزیز باید یک خزنده تعریف کنی دانشت تو زبان php در چه سطحی هست؟
سلام دوست عزیز - من اولین باره دارم php کد می زنم ( ولی مثلا مشتقات c رو خوب بلدم ) کلا یه ایده می خوام که روش کار کنم .
این خزنده که شما می فرمایید به چه شکل هست ؟‌

0xEHSAN
شنبه 19 دی 1394, 14:31 عصر
خزنده نگم گیج میشید منظورم از خزنده برای مثال اینکه که شما صفحه سایت مورد نظر رو لود میکنید و ایندکس میکنید (بر اساس داده ها و تگ هاش تو دیتابیس ذخیره میکنید) و بعد دنبال تگ های a (لینک) میگردید بعد میرید تو صفحه ای از همون سرور که بهش لینک شده بعد هم اونو ایندکس میکنید (اصلاح برنامه نویسی شو نمیدونم ولی چونکه تو صفحات میگرده بهش میگم خزیدن)به همین منوال تا کامل سایت ایندکس بشه

0xEHSAN
شنبه 19 دی 1394, 14:57 عصر
رو توابع file_get_contents و DOMDocument تحقیق کنید هرکجا نامفهوم بود بگید تا تشریحش کنم





$getContent = file_get_contents("http://barnamenevis.org/showthread.php?516308-%D8%A7%DB%8C%D9%86%D8%AF%DA%A9%D8%B3-%DA%A9%D8%B1%D8%AF%D9%86-%DA%86%D9%86%D8%AF-%D8%B3%D8%A7%DB%8C%D8%AA-%D9%88-%D8%AC%D8%B3%D8%AA%D8%AC%D9%88-%D8%AF%D8%B1-%D8%A2%D9%86%D9%87%D8%A7"); $xmlDoc = new DOMDocument();@$xmlDoc->loadHTML($getContent);
$x = $xmlDoc->documentElement;foreach ($x->childNodes AS $item) { print $item->nodeName . " = " . $item->nodeValue . ".................................................. ......................";}

Captain T
یک شنبه 20 دی 1394, 15:01 عصر
رو توابع file_get_contents و DOMDocument تحقیق کنید هرکجا نامفهوم بود بگید تا تشریحش کنم




<?php

$getContent = file_get_contents("http://barnamenevis.org/showthread.php?516308-%D8%A7%DB%8C%D9%86%D8%AF%DA%A9%D8%B3-%DA%A9%D8%B1%D8%AF%D9%86-%DA%86%D9%86%D8%AF-%D8%B3%D8%A7%DB%8C%D8%AA-%D9%88-%D8%AC%D8%B3%D8%AA%D8%AC%D9%88-%D8%AF%D8%B1-%D8%A2%D9%86%D9%87%D8%A7"); $xmlDoc = new DOMDocument();@$xmlDoc->loadHTML($getContent);
$x = $xmlDoc->documentElement;foreach ($x->childNodes AS $item) { print $item->nodeName . " = " . $item->nodeValue . ".................................................. ......................";}
?>


با تشکر از شما دوست عزیز
این کد رو نگاه کنید :
<?php

$url = "http://www.alexa.com/topsites/countries;0/IR";
$html = file_get_contents($url);
libxml_use_internal_errors(true);
$doc = new DomDocument();
$doc->loadHTML($html);
$xpath = new DOMXPath($doc);
$sites = $xpath->query('//*/li[@class="site-listing"]');
$domains = array();
foreach ($sites as $site) {
$rank = $xpath->query('./div[@class="count"]', $site)->item(0)->nodeValue;
$link = $xpath->query('./div/p[@class="desc-paragraph"]/a', $site);
$domains[] = array(
'rank' => $rank,
'name' => $link->item(0)->nodeValue,
'domain' => $link->item(0)->getAttribute('href'),
);
?>

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