מומחה סמלט מסביר כיצד לגרד אתר AJAX באמצעות פייתון

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

עם זאת, ישנן כמה טכניקות בהן ניתן להתגבר על בעיה זו:

1. דפדפנים אוטומטיים

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

2. ליירט שיחות AJAX

זה כרוך בניסיון ליירט את שיחות ה- AJAX מהדף ולנסות להשיב או לשחזר אותן מחדש.

במאמר זה נתמקד כיצד לתפוס שיחות AJAX ולהשמיע אותן מחדש על ידי שימוש בספריית הבקשות ובדפדפן Google Chrome. למרות שמסגרות כמו סקראפי עשויות לספק לך פתרון יעיל יותר בכל הקשור לגריטה, זה לא נדרש לכל המקרים. שיחות AJAX מבוצעות לרוב מול ממשק API שיחזיר אובייקט JSON שאותו הספרייה 'בקשות' יכולה להתמודד בקלות.

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

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

לשם כך, כל שעליכם לעשות הוא לפתוח את DevTools של דפדפן כרום ולנחם ולעבור לסעיף המשנה XHR. XHR הוא ממשק שמבצע בקשות HTTP ו- HTTPS. כך בקשות AJAX יוצגו כאן. כשתלחץ פעמיים על שיחת ה- AJAX, תמצא מידע רב על החנויות. ניתן גם להציג תצוגה מקדימה של הבקשות.

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

יתכן שאתה שואל, 'מדוע שלא תשתמש בדפדפן אוטומטי?' הפיתרון הוא פשוט; נסה תמיד להשמיע שוב את שיחות ה- AJAX לפני שאתה יוצא למשהו הרבה יותר כבד ומסובך כמו דפדפן אוטומטי. זה פשוט וקל יותר.

png

mass gmail