بسم الله الرحمن الرحيم
بعد ان ترددت كثير في كتابة الموضوع
قلت اعمل لي علي واكتبه
طبعا
كان اول موضوع ليس في سوالف من فترة
وكان بالقسم العام
عن عمل محرك بحث
وكان معي حوالي 5 الي 7 مبرمجين بي اتش بي وماي سيكوال
وكان كل شئ ماشي تمام
لغاية كتابة العقد
وبدأية التعقيد
اصبح كل واحد منهم يريد نصيب اكبر من الثاني
لم يكن لدي خبرة برمجية في ذلك الوقت
كانت صفر
فكنت مكتفي بالافكار
كانت لدي افكار جميلة
بعدها وبعد المشاكل
فررت ان اعمل بمفردي
كان همي الاول والاخير بعد هذا هو جمع كل المعلومات المتعلقة بالمحرك
بداية من شراء كشكول بسلك :funny: جتي اكتب فيه كل الافكار
الي ان تم الانتهاء من كل الافكار
اصبح الحلم حلم علي ورق
وبعدها انسحبت من الفكرة بعد ان درست seo بطريقة غير مباشرة
لم اكن اريد تعلم السيو ولاكن تعلمتها من خلال المتابعة لجوجل
االان وبعد ان اطلت عليكم الكتابة والقراءة
نأتي للمهم
فكرة محرك بحث جوجل
لماذا نجح محرك بحث جوجل ؟
ليس السبب الاساسي هو برمجته
ولكن السبب الاساسي انه كان اول محرك بحث
لم يكن يعرف احد كلمة محرك بحث ولم تكن الفكرة موجوده من قبل
لا احد يقول لي ياهو لان ياهو كانت عبارة عن بوابة مواقع مثل مصراوي في هذا الوقت
لم تهتم الا بال ( $ ) ليس المتغيير وانما الفلوس
ويمكنك معرفة هذا من الفليم الوثائقي ثورة جوجل انتاج قناة الجزيرة الوثائقية
في بداية اول شهر صنف جوجل من افضل 100 موقع عالميا من قبل جريدة لا اعرف اسمها
الان وبعد هذا التقدم التكنولوجي والبرمجي
لابد ان نجد جوجل قد تغيرت في كل شئ
حتي في كودها البرمجي
لاكن تبقي نواة محرك البحث كما هي
؟؟؟؟؟؟؟
كيف يعمل محرك بحث جوجل
جوجل عندما يجد موقع جديد او غير موجود في قواعدها
يقوم بالزحف اليه عن طريق برمجة سميناها وسموها العناكب سبايدرز تقوم بجمع كل شئ عن الموقع ويتم وضعه في قاعدة البيانات
اولا
1/ الكلمات الموجوده بالصفحة توضع في مكان بقاعدة البيانات
2 / الكلمات المكررة التي ليس لها لها اهمية بحثية يتم تجاهلها مثل كلمة " ثم وعلي " الكلمات الاخري يتم وضعها بالترتيب في قاعدة البيانات حتي يتم ضغطها بطريقة سرية لا يعرفها الا من يعمل بجوجل
نظام ضغط سري يقوم بضغط الكلمات حتي لا تحمل مساحة كبير في القاعدة وعند البحث عها يتم فكها بأسرع ما يمكن
هذاا ما يميزهم في التطوير
3 / التايتل 4/ الكاي وورد 5/ الميتا تاج 6/ مسألة حسابية بسيطه
وهي مثلا التايتل يتكلم عن البرامج
كم كلمة برامج موجوده في صفحة الموضوع او في الصفحة
اذن هي كثافة كلمة برامج في الموضوع
بحث تكون بين 5 : 8 في المائة ولا تخرج عن هذا الحد
ان كانت اقل من خمسة ظهورها في نتائج اولي يكون ضعيف ان زادت عن 10 تكون عبارة عن سبام ويتم مراجعتها ان تم الشك فيها عن طريق الايدي العاملة
...............................
ماذا يحدث عند البحث
انت تبحث في جوجل
ولا تبحث في الانترنت
لاكن المسطلح مجازا هنا يكون انك تبحث في الانترنت لان جوجل لديها نسخة منه
فأعتقد ان موضوع محرك البحث مبدأيا سهل
لان اغلبنا لدية محرك بحث في موقعه
انا اتكلم عن البداية
..............................
نأتي للمشكلة الاولي التي تواجهنا
وهي مشكلة العناكب
لو فكر احدنا بعمل محرك بحث بلغة php وماي سيكوال
من اين سيجلب العناكب
وانا ابحث من فترة
كنت وجدت برنامج عناكب
يعمل علي نظام ويندوز
صراحة خرافي
لاكن لا يدعم العربية
يقوم بحفظ القواعد في ملف تكست
علي مكان احدده علي الجهاز
كان نسخة تجريبية لتلاتين يوم
لم استخدمها ثانيه وحذفت البرنامج
معي اليوم
كلاس عناكب محرك بحث تستطيع التحكم بها بسهولة
برمجة احد اصدقائي من فترة ووضعه في ترايدنت
لاكن تم اهمال الموضوع
وتمت محاورته بطريقة غير لائقة
اليوم سأضع الكلاس واتمني الا اجد نفس الي حصل :eek2:
كود PHP:
<?
set_time_limit( 0 );
ini_set("memory_limit", 128 );
//strip HTML and Javascript
function html2txt($document){
$search = array('@<script[^>]*?>.*?</script>@si', // Strip out javascript
'@<style[^>]*?>.*?</style>@siU', // Strip style tags properly
'@<[\/\!]*?[^<>]*?>@si', // Strip out HTML tags
'@<![\s\S]*?--[ \t\n\r]*>@' // Strip multi-line comments including CDATA
);
$text = preg_replace($search, '', $document);
return $text;
}
//open db and write garbled data
function write_data($data)
{
require("connectDB.php");
$query = "INSERT INTO repository (data) ". "VALUES ('$data')";
mysql_query($query) or die('Error, query failed');
require("disconnectDB.php");
}
//garble the data that we get from the website.
function garble($hyperlink)
{
$html = implode(" ", file($hyperlink));
$html = strip_tags(html2txt($html));
$s = explode(" ",$html);
shuffle($s);
$new_html = implode(" ", $s);
//echo "<br />" . $new_html . "<br />";
write_data($new_html);
}
class spider_man
{
var $limit;
var $cache;
var $crawled;
var $banned_ext;
function spider_man( $url, $banned_ext, $limit )
{
$this->start = $url ;
$this->banned_ext = $banned_ext ;
$this->limit = $limit ;
if( !fopen( $url, "r") ) return false;
else $this->_spider( $url );
}
function _spider( $url )
{
$this->cache = @file_get_contents( urldecode( $url ) );
if( !$this->cache ) return false;
$this->crawled[] = urldecode( $url ) ;
preg_match_all( "#href=\"(https?://[&=a-zA-Z0-9-_./]+)\"#si", $this->cache, $links );
if ( $links ) :
foreach ( $links[1] as $hyperlink )
{
$this->limit--;
if( ! $this->limit ) return;
if( $this->is_valid_ext( trim( $hyperlink ) ) and !$this->is_crawled( $hyperlink ) ) :
$this->crawled[] = $hyperlink;
echo "Crawling $hyperlink<br />\n";
garble($hyperlink);
unset( $this->cache );
$this->_spider( $hyperlink );
endif;
}
endif;
}
function is_valid_ext( $url )
{
foreach( $this->banned_ext as $ext )
{
if( $ext == substr( $url, strlen($url) - strlen( $ext ) ) ) return false;
}
return true;
}
function is_crawled( $url )
{
return in_array( $url, $this->crawled );
}
}
$banned_ext = array
(
".dtd",
".css",
".xml",
".js",
".gif",
".jpg",
".jpeg",
".bmp",
".ico",
".rss",
".pdf",
".png",
".psd",
".aspx",
".jsp",
".srf",
".cgi",
".exe",
".cfm"
);
?>
طريقة الإستخدام نعمل إستدعاء للكلاس
تم هنا
$spider = new spider_man( رابط الموقع الدي تريد العناكب زيارته, $banned_ext, 10000 );
print_r( $spider->سمي العنكب يامان );
طبعا خبرتي في البرمجة لم تصل لهذا الحد
يعني ما حد يقلي اشرح الكلاس
ارجو المبرمجين يشرحوه
هو سهل علي ما اعتقد
كود PHP:
".dtd",
".css",
".xml",
".js",
".gif",
".jpg",
".jpeg",
".bmp",
".ico",
".rss",
".pdf",
".png",
".psd",
".aspx",
".jsp",
".srf",
".cgi",
".exe",
".cfm"
هده هي الملفات التي يدعمها
كود PHP:
set_time_limit( 0 );
ini_set("memory_limit", 128 );
هنا تتحكم بالعنكب الوقت الدي سيمضيه بالموقع
طبعا ان كان فيه شئ لم اتذكره
سأكتبه بالموضوع ان شاء الله
والسلام عليكم ورحمة الله وبركاته