זחלן רשת

**זחלן רשת** (**Web crawler**), **רובוט חיפוש**, **רובוט רשת** או **עכביש רשת** הוא בוט או תוכנה לסריקת הרשת הכלל עולמית, באופן אוטומטי, שיטתי וסדרתי. אתרים רבים, בייחוד מנועי חיפוש, משתמשים בזחלנים כדי לקבל תמונה עדכנית של הרשת. הזחלן אוסף נתונים מאתרים על ידי גרידת רשת, בכדי לעדכן אותם מאוחר יותר במאגרי מידע כמו אינדקס של מנוע החיפוש ובכך מאפשר למנוע החיפוש מתן תוצאות מהירות. כמו כן, תוכנות זחלן יכולות לאתר קישורים שבורים בדפי אינטרנט או לאסוף כתובות דואר אלקטרוני (בדרך כלל לשם משלוח דואר זבל ופרסומים שונים). התהליך אותו עושה התוכנה נקרא "הזדחלות אינטרנטית". בדרך כלל הזחלן מתחיל לסרוק דף מתוך רשימה נתונה של דפים (למשל האינדקס של מנוע החיפוש) ומשם הוא מתקדם באופן רקורסיבי דרך הקישורים בדף, לדפים נוספים.

## דרך פעולה
הזחלן מתחיל את פעולתו ברשימת אתרים אותם עליו לבקר, אתרים אלו נקראים בשם "זרעים" (seeds), כאשר הזחלן מבקר באתרים אלו הוא מזהה את הקישורים שיש בדף אינטרנט מסוים ומצרף אותם לרשימת האתרים שבהם עליו לבקר. הכמות הרבה של האתרים בהם הזחלן מבקר מחייבת את התוכנה לדעת לסדר את האתרים בסדר עדיפויות, אך אין אפשרות לדעת בביטחון כי האתר בו הזחלן מבקר לא נסרק כבר קודם לכן. לכן, השגת מידע ראשוני בכל הפעלה של התוכנה היא דבר כמעט בלתי אפשרי.
התנהגותו של הזחלן היא תוצאה של צירוף מספר קווי מדיניות:
* מדיניות של בחירה אשר מגדירה איזה עמוד להוריד.
* מדיניות של ביקור חוזר אשר מגדירה מתי לבדוק שינויים בדפים.
* מדיניות נימוס אשר מגדירה איך להימנע מעומס יתר של אתרים ולגרום להפלה של שרתים.
* מדיניות של מקבילות אשר מגדירה איך לתאם בין פעולתם של הזחלנים השונים.

## מדיניות בחירה (סלקציה)
בהינתן הגודל של האינטרנט, גם מנועי חיפוש גדולים מכסים בחיפושם רק חלק קטן מהנתונים. מחקרים הראו כי המידע המתקבל על ידי אתרים אלו עומד על בין ארבעים לשבעים אחוז מכלל ההיצע האינטרנטי. מכיוון שהזחלן מוריד רק חלק קטן מדפי האינטרנט, התוצאה הרצויה היא שדפים אלו יכילו בתוכם את המידע הרלוונטי ביותר ולא רק דגימה מקרית.

על כן, נדרש מדד לחשיבות ולתעדוף דפי אינטרנט. החשיבות של דף היא פונקציה של האיכות הפנימית שלו, הפופולריות שלו במונחים של קישורים או ביקורים, ואפילו של כתובת האתר שלו. לעיצוב מדיניות בחירה טובה יש קושי נוסף: היא חייבת לעבוד עם מידע חלקי, מכיוון שהסט המלא של דפי האינטרנט אינו ידוע במהלך הסריקה. לכן, כאשר מגדירים מדיניות בחירה של דפי אינטרנט צריך לקחת בחשבון כי על הזחלן לעבוד עם מידע חלקי וכי המידע השלם שקיים ברשת לא יופיע במהלך הרצת התוכנה. 

ישנן שתי דרכים מקובלות להריץ תוכנה זו באינטרנט: דרך ראשונה היא על פי מספר הביקורים באתר מסוים (הסתבר כי לא מניב תוצאות טובות, ובעיקר מועיל במקרים של דפי אינטרנט יחידים ולא במקרים של אתרים שלמים). דרך שנייה להרצת התוכנה היא לפי עיקרון "breadth-first", אסטרטגיה שבה הזחלן מתחיל בחקירת דפים שנמצאים במרחק קרוב יותר (מבחינת קישורים) לעמוד ה-Seed הראשוני לפני שהוא נכנס עמוק יותר למבנה הקישורים. דרך זו מניבה תוצאות יותר טובות מכיוון שהאתרים שזוכים ליותר ביקורים מופיעים גבוה יותר בתוצאות החיפוש. הסיבה לכך היא כי הדפים החשובים יותר הם דפים שאליהם יש קישורים רבים יותר מתוך דפים אחרים, ולכן גם קל יותר לאתר אותם. 

בנוסף, ישנן תוכנות מבוססות אלגוריתמים אשר מחלקות את הדפים לפי דירוג, כאשר הדפים בעלי "הדירוג" (אשר נקבע לפי האלגוריתם) הגבוה יותר מאותרים מיידית וסימולטנית על ידי התוכנה. דרך זו של חיפוש לא הועלתה מעולם לאינטרנט ועל כן לא ניתן להוכיח את אמינותה.

## מיקוד התוכנה
כאשר מריצים תוכנה כמו הזחלן, דבר חשוב שצריך לבצע הוא התאמה בין דמיון של עמוד מסוים לנושא החיפוש. הבעייתיות המרכזית אשר עולה מהזחלן היא כשרוצים לדעת את מידת ההתאמה של הערך לנושא החיפוש לפני הורדת העמוד. דרך טובה לנבא זאת היא עוגן הטקסטים בלינק, זוהי שיטה שפותחה על ידי פינקרטון באחד מהזחלנים הראשונים שקמו באינטרנט. הפוקוס של החיפוש תלוי בכמות הלינקים בנושא שמחפשים והישענות על מנוע חיפוש אשר נותן נקודת התחלה טובה.

## מדיניות הביקור החוזר
האינטרנט הוא מדיום דינמי, ותהליך הזחילה עשוי להימשך שבועות ואף חודשים. במהלך תקופה זו, תכנים עשויים להשתנות או לאבד מהרלוונטיות שלהם. לפיכך, בעת הרצת תוכנת הזחילה, נבחנות התוצאות על פי שני מדדים בסיסיים: עדכניות וגיל.

* **עדכניות:** נמדדת באופן בינארי - כלומר, האם העותק זהה למקור או לא.
* **גיל:** מדד המציין את משך הזמן שחלף מאז נוצר העותק.

המטרה העיקרית של הזחלן היא לשמור על רמת עדכניות גבוהה של הדפים שהוא אוסף, תוך צמצום פער הזמן בין העדכון האחרון לבין זמן האיסוף. לשם כך, על הזחלן לבצע שתי משימות: ראשית, עליו לזהות את הדפים שלא עודכנו לאחרונה באתר מסוים, ושנית, לבדוק את משך הזמן שחלף מאז עדכונם האחרון. הזחלן נדרש לסרוק את כל הדפים באוסף מספר פעמים, תוך מתן עדיפות לדפים המתעדכנים בתדירות גבוהה. כדי להבטיח איסוף של התוכן העדכני ביותר, על הזחלן להפחית את תדירות הביקור באתרים המשתנים לעיתים קרובות מדי, ובמקרים מסוימים אף להימנע מאיסוף דפים אלו.

## נוהלי שימוש מקובלים
תוכנות זחילה מסוגלות לאתר ולאסוף מידע במהירות ובעומק רב יותר מאשר בני אדם. עם זאת, המהירות ואופן הפעולה שלהן עלולים להעמיס משמעותית על השרתים, עד כדי כך שפעילות מקבילה של מספר זחלנים עלולה לגרום לקריסת שרת...

* הזחלנים צורכים משאבי רשת משמעותיים, דבר העלול לגרום להאטה באזורים מסוימים של הרשת לפרקי זמן ממושכים.
* בזמן פעילות הזחלן באתר מסוים, הגישה אליו עלולה להיות מוגבלת או בלתי אפשרית בשל העומס הרב שנוצר על השרת.
* זחלנים שתוכנתו באופן לקוי עלולים לגרום לקריסת שרתים ונתבים, או להוריד דפים שאינם מסוגלים לעבד כראוי.
* פעילות הזחלנים עלולה להוביל לקריסה של שרתים ואתרים שלמים.

פתרון חלקי לבעיות אלו הוא "פרוטוקול הדרת רובוטים" (Robots Exclusion Protocol), המהווה סטנדרט המאפשר למנהלי אתרים להגדיר אילו חלקים מהאתר אינם מיועדים לסריקה על ידי זחלנים. שיטה זו נחשבת ליעילה ביותר במניעת קריסת אתרים כתוצאה מעומס יתר של זחלנים. ההגבלות שקובעים מנהלי האתרים עבור הזחלנים מפורטות בדרך כלל בקובץ Robots.txt.

## מדיניות ההקבלה
זחלן מקבילי הוא תוכנה המבצעת מספר תהליכי זחילה בו-זמנית. מטרתו היא למקסם את כמות הדפים הנאספים תוך צמצום איסוף כפול של תכנים. על הזחלן לזהות כתובות URL זהות כדי למנוע איסוף חוזר של אותם האתרים.

## זחלנים נפוצים
### Metasploit
בכלי התקיפה המפורסם Metasploit נמצא גם זחלן רשת אשר ניתן להשתמש בו על ידי הקשת הפקודות הבאות
```bash
use auxiliary/crawler/msfcrawler
msf auxiliary(msfcrawler) > set rhosts www.example.com
msf auxiliary(msfcrawler) > exploit
```


### Httrack
Httrack הוא הוא סורק אינטרנט בחינם וקוד פתוח ודפדפן לא מקוון, שפותח על ידי Xavier Roche. הכלי מאפשר לך להוריד אתר אינטרנט לספרייה מקומית, לבנות באופן רקורסיבי את כל הספריות, לקבל HTML, תמונות וקבצים אחרים מהשרת למחשב. כדי להשתמש בו דרך שורת הפקודה של Kali Linux ניתן להקיש את הפקודה הבאה:
```bash
httrack http://tptl.in –O /root/Desktop/file
```


### [https://github.com/1N3/BlackWidow Black Widow]
כלי זה מזהה ומציג מידע מפורט עבור דף אינטרנט שנבחר על ידי המשתמש, והוא מציע כלים אחרים של דפי אינטרנט.

### [[Burp Suite]]
גם בכלי הנפוץ Burp Suite ניתן להשתמש בזחלן על מנת לגלות את תוכן האתר.

## ראו גם
* קישור
* קישור שבור

## הערות שוליים

קטגוריה:ערכים שבהם תבנית בריטניקה אינה מתאימה
קטגוריה:מידע
קטגוריה:מנועי חיפוש