מהו זחלן-רשת?זחלן-רשת הוא תוכנת מחשב שסורקת אתרי-אינטרנט בזה אחר זה ומבצעת פעולות המבוססות על התוכן הנמצא בדפי-האתרים. המעבר של זחלן-הרשת מאתר לאתר מבוצע ע"י זיהוי הקישורים החיצוניים (קישורים לאתרים אחרים) שנמצאים באתר הנוכחי שנסרק. לדוגמא, זחלן-הרשת מתחיל מכתובת של אתר אינטרנט ומבצע את הפעולות הבאות: קבלת קוד ה-HTML של העמוד הראשי באתר, ניתוח קוד ה-HTML, שליפת הקישורים (תגי <a>) וסיווג כל קישור כקישור שמוביל לעמוד אחר באותו האתר (קישור פנימי) או כקישור שמוביל לאתר אחר (קישור חיצוני), לאחר מכן ביצוע אותם הפעולות בעמוד הבא באתר (שנשלף מרשימת הקישורים הפנימיים). בתום סריקת דפי-האתר, הזחלן מתקדם לאתר הבא מתוך רשימת הקישורים החיצוניים שנוצרה. כך הזחלן סורק את הרשת, דף אחר דף, אתר אחר אתר.
זחלן-הרשת של גוגלזחלן-הרשת של גוגל סורק את כל הדפים שנמצאים באינטרנט בתדירות שונה לכל אתר (בהתאם לקצב השינויים באתר). הרובוט שומר את קוד ה-HTML של העמודים כדי שבשלב מאוחר יותר, קוד זה ישמש כקלט של האלגוריתמים של גוגל, המדרגים את העמודים וקובעים את מיקומם בתוצאות החיפוש. כאשר מבוצעת בקשה לקבלת דף-אינטרנט משרת Web, היא מבוצעת בפרוטוקול HTTP, אחד השדות בפרוטוקול HTTP הוא השדה UserAgent המכיל מחרוזת שמזהה את התוכנה שביצעה את הבקשה (לדוגמא שם הדפדפן שהגולש משתמש בו). כשהזחלן של גוגל מבקש דף-אינטרנט, בשדה UserAgent מופיעה המחרוזת Googlebot. שרת ה-Web יכול לדעת מהו ערך השדה UserAgent ולפיכך לדעת מתי הזחלן של גוגל סרק כל עמוד.
איך להכין זחלן-רשת בפלאשניתן להכין זחלן-רשת בפלאש (בשפת AS3) ע"י שימוש במחלקה URLLoader.סדר הפעולות ליצירת זחלן-רשת:א. שימוש במחלקה URLLoader כדי לקבל את קוד ה-HTML של דף האינטרנט הראשון ממנו הזחלן יתחיל לפעול. קוד ה-HTML מתקבל באמצעות הגדרת האירוע Event.COMPLETE.ב. ניתוח קוד ה-HTML ע"י שימוש ב: Regular Expressions, indexOf, lastIndexOf, substr, substring כדי לשלוף את כל הקישורים הפנימיים (שמובילים לדפים אחרים בתוך האתר) והקישורים החיצוניים (שמובילים לאתרים אחרים).ג. ביצוע פעולות שונות בהתאם למטרות הזחלן, הקלט של הפעולות הוא קוד ה-HTML של העמוד.ד. שימוש ב-URLLoader שוב בצורה רקורסיבית על פני כל אחד מהעמודים ברשימת הקישורים הפנימיים ולאחר סריקת כל עמודי האתר, מעבר לאתר חדש.
המאמר נכתב ע"י אלעד כהן - מתכנת פלאש בחברת GAME DEV LTD.