שגיאה בהרצת תוכנית שנייה בפייתון

היי ,
לאחר הרצת הקוד כפי שהוצג בקורס
אני מקבל שגיאה

C:/Users/AZRAN2/PycharmProjects/pycourse/03-hello-python-world/demo2.py:6: GuessedAtParserWarning: No parser was explicitly specified, so I'm using the best available HTML parser for this system ("html.parser"). This usually isn't a problem, but if you run this code on another system, or in a different virtual environment, it may use a different parser and behave differently.

The code that caused this warning is on line 6 of the file C:/Users/AZRAN2/PycharmProjects/pycourse/03-hello-python-world/demo2.py. To get rid of this warning, pass the additional argument 'features="html.parser"' to the BeautifulSoup constructor.

  soup = BeautifulSoup(r.text)


Process finished with exit code 0

הקוד שכתבתי

import requests
from bs4 import BeautifulSoup

url = 'https://www.ynet.co.il/news/category/184'
r = requests.get(url)
soup = BeautifulSoup(r.text)
for link in soup.select('a.smallheader'):
    print(link.text)

בנוסף בהרצה בשורת הפקודה
אני מקבל שגיאה שהמודל לא נמצא / מוכר למרות שהוא רץ בפייתון
אשמח לקבל עזרה בנושא

שלום אביחי(?)

לגבי השאלה הראשונה/עיקרית - שים לב שזו לא שגיאה, אלא אזהרה (GuessedAtParserWarning) והתוכנית מסתיימת תקין:

Process finished with exit code 0

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

  1. אתר ynet שינה את דף המבזקים שלו - כתובת הדף ותבנית ה-HTML השתנו ולכן לא חזרו תוצאות (לא הודפסו כותרות המבזקים).
  2. המודול BeautifulSoup התעדכן ומדפיס את האזהרה הנ"ל אם לא מקבל ארגומנט נוסף (מוסבר באזהרה).

תוכל להשתמש בקוד מעודכן, שאמור לעבודת תקין וללא אזהרות, שנמצא כאן:


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

venv\Scripts\activate.bat

אם אתה עובד עם כלי שורת פקודה אחר, תוכל להיעזר בטבלה הזו:
image

לייק 1

מצוין,
עכשיו לאחר ההסבר המפורט ,
עדכנתי והכל רץ ללא אזהרות.
תודה :slight_smile: