זו אחת הבעיות כשלומדים
בצורה אקראית כזו.
מדריכים כאלה מניחים שאתה מבין מה היא שפת תיכנות, ומבין את הבסיסי שמאחורי פיתוח תוכנה, ורק מנסים ללמד אותך כלי תכנות ספציפי.
 
זו הסיבה, שבד"כ כשמישהו אומר שהוא רוצה לעבוד ברצינות ב-"הייטק" (כשהכוונה בד"כ בפיתוח תוכנה ולא 1001 תחומים אחרים תחת הכותרת הזו) ממליצים לו לעשות תואר במדמ"ח.
 
בכל אופן, התשובה לשאלתך היא: ככה עובדים בכלל.
 
כל שפת תכנות מורכבת בגדול מ-2 דברים:
1. הסינטקס הבסיסי של השפה, שמאפשר לך לעשות כל פעולה, כאשר פעולות פשוטות דורשות מעט כתיבה, ופעולות מורכבות הרבה כתיבה.
2. ספרייה סטנדרטית שמכילה קוד מוכן (בצורה של פונקציות ו\או מחלקות), עבור מטלות נפוצות. קוד שנכתב ע"י יוצרי השפה (בד"כ) ונבדק הרבה.
 
כך למשל, אם תרצה Hash Map, במקום לממש בעצמך, הרבה שפות, כולל Python יתנו לך אחד מוכן בספרייה הסטנדרטית.
 
בנוסף, עבור כל שפה פופולרית תמיד יש מגוון ספריות צד שלישי.
חלקן בחינם, חלקן בתשלום, חלקן קוד פתוח, חלקן סגורות.
 
ספריות הן אוסף קוד והן עושות דברים שונים ומשונים כי בסופו של יום - הרעיון בתכנות הוא לא להמציא כל פעם את הגלגל מחדש, אלא להשתמש כמה שיותר במה שכבר קיים ונבדק, וידוע שעובד היטב.
 
עד כה השתמשתי במונח "ספריות" כי זה המונח הכללי ביותר.
ב-Python הקוד בד"כ מסודר ב-"מודולים", כשכול "מודול" כולל פונקציות ומחלקות שאחראיות כולן על אותו דבר מסוים שמשותף להן.
 
ניתוח עמוד HTML הוא משימה מורכבת.
כשמתכנת ניגש למשימה, הדבר הראשון שעליו לעשות הוא להבין מה נדרש ממנו.
לאחר מכן, עליו לחלק את המשימה לשלבים.
ולבסוף, להחליט כיצד לבצע כל שלב.
 
כשהמתכנת חושב כיצד לבצע שלב מסוים במשימה, האפשרויות שעומדות בפניו מתחלקות בד"כ לשתי קבוצות עיקריות:
1. לכתוב את הקוד בעצמו בצורה כזו או אחרת.
לפעמים יש אילוצים וזו האופציה היחידה.
 
2. למצוא קוד שמישהו אחר כתב ולהשתמש בו.
 
עמוד HTML הוא בעצם אוסף של תווים - קובץ טקסט. אם ממש היית רוצה, יכולת להשתמש בבסיס של השפה ולכתוב קוד שעובר על כל התווים ומוצא את הרצפים שאתה צריך - הקישורים.
 
אם בשיעור היו רוצים לתרגל עבודה עם מחרוזות ב-Python או עבודה עם ביטויים רגולריים, ייתכן מאוד שזה מה שהיו מראים לך.
 
במקום זה, בחרו ללמד אותך איך משתמשים בקוד של אחרים.
לפתרון אמתי, לרוב זה רעיון טוב - מישהו כבר בנה ספרייה, מאוד נוחה, וחזקה, שיודעת להתמודד עם כל הסיבוך הכרוך בניתוח HTML ונותנת לך כמשתמש כל מיני יכולות.
 
זה חוסך לך המון עבודה, וגם משאיר לך פחות מקום ליצור באגים, או להיתקל בקלט לא צפוי.
 
ועכשיו לשאלה האמתית:
איך אתה כמתכנת יודע אם לבחור באופציה 1 או 2?
והתשובה היא: תלוי בנסיבות!
הידע האמתי של מתכנת הוא איך לפתור את הבעיות ולבצע את המשימות שמעמידים לפניו.
 
אם אתה בתור מתכנת כבר מכיר כלי מתאים למשימה, אתה יכול להתחיל לבצע אותה.
אם אתה לא מכיר כלי כזה, עליך לחפש ולמצוא אותו בכל מקור שזמין לך.
היום, זה בד"כ גוגל, שמוביל למקורות אחרים כמו Stack Overflow.
 
ל-Python ספציפית יש מאגר מודולים
https://pypi.python.org/pypi
אבל, אין טעם לנסות לקרוא את התוכן שלו ולשנן. מספיק לזכור שהוא שם, וכשתצטרך איזה מודול שיעשה משהו, יש סיכוי טוב שתמצא אותו שם.
 
כמובן, יש גם מקורות אחרים למצוא מודולים, כמו GitHub.
 
שים לב, שמה שכתבתי הוא נכון וזהה עבור כל שפת תכנות - Python לא ייחודית כאן.
 
ההודעה יצא קצת ארוכה, אבל אני מקווה שהצלחתי להעביר את הפואנטה.