אם אתה מוצא את עצמך לעתים קרובות מביא נתונים מאתרים, כנראה שכדאי לך לשקול להפוך את התהליך לאוטומטי. לפעמים מכונה "גרידת רשת", התהליך הוא נפוץ עבור אתרים שאינם מספקים API או עדכון רשמי. כמובן, לא תגיע לשום מקום אם האתר שאתה מנסה להביא אינו זמין.
אם אתה מנהל אתר משלך, כנראה נאלצת להתמודד עם זמן השבתה בעבר. זה יכול להיות מתסכל, לגרום לך לאבד מבקרים ולהפריע לכל פעילות שהאתר שלך עשוי להיות אחראי לה. בנסיבות כאלה, כדאי להיות מסוגל לבדוק בקלות את זמינות האתר שלך.
Python היא שפה מצוינת לסקריפטים, והתחביר התמציתי אך הקריא שלה הופך את הטמעת בודק אתרים למשימה פשוטה.
יצירת בודק האתר המותאם אישית שלך
בודק האתרים מותאם במיוחד כדי להתאים למספר אתרים בו זמנית. זה מאפשר לך להחליף בקלות אתרים שכבר לא אכפת לך מהם, או להתחיל לבדוק אתרים שאתה משיק בעתיד. הבודק הוא "אפליקציית שלד" אידיאלית שאפשר לבנות עליה עוד, אבל הוא מדגים גישה בסיסית לאיסוף נתוני אינטרנט.
ייבוא ספריות ב-Python
כדי להתחיל את הפרויקט, עליך לייבא את בקשות ספרייה ב-Python עם ה יְבוּא פוּנקצִיָה.
יְבוּא בקשות
ספריית הבקשות שימושית לתקשורת עם אתרי אינטרנט. אתה יכול להשתמש בו כדי לשלוח בקשות HTTP ולקבל נתוני תגובה.
אחסן את כתובות האתר ברשימה
ברגע שאתה מייבא את הספרייה, עליך להגדיר ולאחסן את כתובות האתרים ברשימה. שלב זה מאפשר לך לשמור מספר כתובות אתרים, אותן תוכל לבדוק עם בודק האתרים.
יְבוּא בקשות
site_url = [
" https://www.google.co.ב",
" https://www.yahoo.com",
" https://www.amazon.co.ב",
" https://www.pipsnacks.com/404",
" http://the-internet.herokuapp.com/status_codes/301",
" http://the-internet.herokuapp.com/status_codes/500"
]
המשתנה כתובת אתר מאחסן את רשימת כתובות האתרים. בתוך הרשימה, הגדר כל כתובת אתר שברצונך לבדוק כמחרוזת בודדת. אתה יכול להשתמש בכתובות האתרים לדוגמה בקוד לבדיקה או שאתה יכול להחליף אותן כדי להתחיל לבדוק את האתרים שלך מיד.
לאחר מכן, אחסן את ההודעות למשותף קודי תגובה של HTTP. אתה יכול לשמור אותם במילון, ולהוסיף כל הודעה לאינדקס לפי קוד המצב המתאים לה. לאחר מכן, התוכנית שלך תוכל להשתמש בהודעות אלה במקום בקודי מצב לקריאה טובה יותר.
סטטוסים = {
200: "אתר זמין",
301: "הפניה קבועה",
302: "הפניה זמנית",
404: "לא נמצא",
500: "שגיאת שרת פנימית",
503: "שירותים לא זמינים"
}
יצירת לולאה לבדיקת סטטוס אתר
כדי לבדוק כל כתובת URL בתורה, תרצה לולאה ברשימה של אתרי אינטרנט. בתוך הלולאה, בדוק את המצב של כל אתר על ידי שליחת בקשה דרך ספריית הבקשות.
ל כתובת אתר ב כתובת אתר:
לְנַסוֹת:
web_response = requests.get (כתובת אתר)
הדפס (כתובת אתר, סטטוסים[web_response.status_code])
מלבד:
הדפס (כתובת אתר, סטטוסים[web_response.status_code])
איפה:
- עבור כתובת אתר...חוזר על רשימת כתובות האתרים.
- כתובת אתר הוא המשתנה שאליו לולאת for מקצה כל כתובת URL.
- לנסות/למעטמטפל בכל חריג שעלול להתעורר.
- web_response הוא משתנה המספק למאפיין את קוד המצב של התגובה
כל קטע הקוד
אם אתה מעדיף לסקור את כל הקוד במכה אחת, הנה רשימת קוד מלאה לעיון.
יְבוּא בקשות
site_url = [
" https://www.google.co.ב",
" https://www.yahoo.com",
" https://www.amazon.co.ב",
" https://www.pipsnacks.com/404",
" http://the-internet.herokuapp.com/status_codes/301",
" http://the-internet.herokuapp.com/status_codes/500"
]סטטוסים = {
200: "אתר זמין",
301: "הפניה קבועה",
302: "הפניה זמנית",
404: "לא נמצא",
500: "שגיאת שרת פנימית",
503: "שירותים לא זמינים"
}ל כתובת אתר ב כתובת אתר:
לְנַסוֹת:
web_response = requests.get (כתובת אתר)
הדפס (כתובת אתר, סטטוסים[web_response.status_code])
מלבד:
הדפס (כתובת אתר, סטטוסים[web_response.status_code])
והנה דוגמה להרצה של הקוד:
יכולות הקידוד של Python ב-Web Scraping
ספריות הצד השלישי של Python אידיאליות למשימות כמו גירוד אינטרנט ואחזור נתונים באמצעות HTTP.
אתה יכול לשלוח בקשות אוטומטיות לאתרי אינטרנט לביצוע סוגים שונים של משימות. אלה עשויים לכלול קריאת כותרות חדשות, הורדת תמונות ושליחת מיילים אוטומטית.