A Step-by-Step Python Selenium Web Scraping Tutorial

עודכן לאחרונה ב-May 6, 2026
Step-by-step Python Selenium web scraping tutorial title slide with coding and web icons

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

כאן נכנסת לתמונה גריפה עם Selenium. בתור מי שבנה במשך שנים כלי אוטומציה — וכן, גם גרף לא מעט אתרים — אני יכול להגיד לכם: שליטה ב-Selenium היא כמעט כמו כוחות-על לכל מי שצריך נתונים עדכניים ודינמיים. במדריך המעשי הזה לגריפת אתרים עם Selenium, נעבור יחד על השלבים המרכזיים — מההתקנה ועד האוטומציה — ונראה איך לשלב את Selenium עם Thunderbit כדי לקבל נתונים מובנים ומוכנים לייצוא. בין שאתם אנליסטים עסקיים, אנשי מכירות או פשוט משתמשי Python סקרנים, תצאו מכאן עם מיומנויות מעשיות ואפילו עם כמה חיוכים (כי בואו נודה בזה, דיבוג של סלקטורי XPath בונה אופי).

נסו את Thunderbit AI Web Scraper

מה זה Selenium ולמה להשתמש בו לגריפת אתרים?

selenium-dynamic-vs-static-web-scraping.png נתחיל מהבסיס. Selenium הוא מסגרת קוד פתוח שמאפשרת לכם לשלוט בדפדפן אמיתי — כמו Chrome או Firefox — באמצעות קוד. תחשבו עליו כרובוט שיכול לפתוח דפים, ללחוץ על כפתורים, למלא טפסים, לגלול ואפילו להריץ JavaScript, ממש כמו משתמש אנושי. זה עניין גדול, כי רוב האתרים המודרניים לא מציגים את כל הנתונים מראש. במקום זאת, הם טוענים תוכן באופן דינמי, לעיתים קרובות רק אחרי שמבצעים פעולה כלשהי בדף.

מהי גריפת נתונים ואיך עושים זאת ב-2026 Get Started Free

למה זה חשוב לגריפה? כלים מסורתיים כמו BeautifulSoup או Scrapy מצוינים ל-HTML סטטי, אבל הם לא יכולים “לראות” שום דבר שנטען על ידי JavaScript אחרי טעינת הדף הראשונית. Selenium, לעומת זאת, יכול לקיים אינטראקציה עם הדף בזמן אמת, ולכן הוא מושלם ל:

  • גריפת רשימות מוצרים שמופיעות רק אחרי לחיצה על “טען עוד”
  • שליפת מחירים או ביקורות שמתעדכנים באופן דינמי
  • ניווט בטפסי התחברות, חלונות קופצים או גלילה אינסופית
  • חילוץ נתונים מלוחות בקרה, מפות או רכיבים אינטראקטיביים אחרים

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

שלבי מפתח לגריפת אתרים עם Python ו-Selenium

גריפה עם Selenium מסתכמת בשלושה שלבים חיוניים:

שלבמה עושיםלמה זה חשוב
1. הגדרת הסביבהמתקינים Selenium, WebDriver וספריות Pythonמכינים את הכלים ומונעים כאבי ראש בהתקנה
2. איתור רכיביםמוצאים את הנתונים הרצויים באמצעות IDs, classes, XPath וכו'מכוונים בדיוק למידע הנכון, גם אם הוא מוסתר על ידי JavaScript
3. חילוץ ושמירת נתוניםשולפים טקסט, קישורים או טבלאות ושומרים ל-CSV/Excelהופכים נתוני רשת גולמיים למשהו שאפשר להשתמש בו

בואו נצלול לכל שלב עם דוגמאות מעשיות וקוד שאפשר להעתיק, לשנות ולהשוויץ בו לחברים.

שלב 1: הגדרת סביבת Selenium ב-Python

קודם כול: צריך להתקין את Selenium וגם מנהל דפדפן (כמו ChromeDriver ל-Chrome). החדשות הטובות? היום זה פשוט יותר מאי פעם.

התקנת Selenium

פתחו את הטרמינל והריצו:

pip install selenium

קבלת WebDriver

  • Chrome: הורידו את ChromeDriver (ודאו שהוא תואם לגרסת Chrome שלכם).
  • Firefox: הורידו את GeckoDriver.

טיפ מקצועי: ב-Selenium 4.6 ומעלה אפשר להשתמש ב-Selenium Manager כדי להוריד מנהלי דפדפן אוטומטית, כך שאולי אפילו לא תצטרכו להתעסק יותר עם משתני PATH (תיעוד).

הסקריפט הראשון שלכם ב-Selenium

הנה “hello world” קצר ל-Selenium:

from selenium import webdriver

driver = webdriver.Chrome()  # או webdriver.Firefox()
driver.get("https://example.com")
print(driver.title)
driver.quit()

טיפים לפתרון בעיות:

  • אם מתקבלת שגיאת “driver not found”, בדקו את ה-PATH או השתמשו ב-Selenium Manager.
  • ודאו שגרסאות הדפדפן וה-driver תואמות.
  • אם אתם עובדים על שרת headless (בלי GUI), ראו את הטיפים למצב headless בהמשך.

שלב 2: איתור רכיבי אינטרנט לחילוץ נתונים

ועכשיו לחלק המהנה: להגיד ל-Selenium אילו נתונים אתם רוצים. אתרים בנויים מרכיבים — divs, spans, טבלאות, מה שתרצו — ו-Selenium נותן כמה דרכים למצוא אותם.

אסטרטגיות נפוצות לאיתור רכיבים

  • By.ID: מחפש רכיב עם ID ייחודי
  • By.CLASS_NAME: מחפש רכיבים לפי מחלקת CSS
  • By.XPATH: משתמש בביטויי XPath (גמיש מאוד, אבל יכול להיות שביר)
  • By.CSS_SELECTOR: משתמש בסלקטורי CSS (מצוין לשאילתות מורכבות)

כך אפשר להשתמש בהם:

from selenium.webdriver.common.by import By

# חיפוש לפי ID
price = driver.find_element(By.ID, "price").text

# חיפוש לפי XPath
title = driver.find_element(By.XPATH, "//h1").text

# חיפוש כל תמונות המוצר לפי סלקטור CSS
images = driver.find_elements(By.CSS_SELECTOR, ".product img")
for img in images:
    print(img.get_attribute("src"))

טיפ מקצועי: תמיד עדיף להשתמש בסלקטור הפשוט והיציב ביותר (ID > class > CSS > XPath). ואם אתם גורפים דף שטוען נתונים אחרי עיכוב, השתמשו בהמתנה מפורשת:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

wait = WebDriverWait(driver, 10)
price_elem = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, ".price")))

כך הסקריפט לא יקרוס אם הנתונים צריכים עוד שנייה להופיע.

שלב 3: חילוץ ושמירת נתונים

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

חילוץ טקסט, קישורים וטבלאות

נניח שאתם גורפים טבלת מוצרים:

data = []
rows = driver.find_elements(By.XPATH, "//table/tbody/tr")
for row in rows:
    cells = row.find_elements(By.TAG_NAME, "td")
    data.append([cell.text for cell in cells])

שמירה ל-CSV עם Pandas

import pandas as pd

df = pd.DataFrame(data, columns=["Name", "Price", "Stock"])
df.to_csv("products.csv", index=False)

אפשר גם לשמור ל-Excel (df.to_excel("products.xlsx")) או אפילו להעביר ל-Google Sheets באמצעות ה-API שלהם.

דוגמה מלאה: גריפת כותרות מוצרים ומחירים

from selenium import webdriver
from selenium.webdriver.common.by import By
import pandas as pd

driver = webdriver.Chrome()
driver.get("https://example.com/products")

data = []
products = driver.find_elements(By.CLASS_NAME, "product-card")
for p in products:
    title = p.find_element(By.CLASS_NAME, "title").text
    price = p.find_element(By.CLASS_NAME, "price").text
    data.append([title, price])

driver.quit()

df = pd.DataFrame(data, columns=["Title", "Price"])
df.to_csv("products.csv", index=False)

Selenium מול BeautifulSoup ו-Scrapy: מה הופך את Selenium לייחודי?

selenium-vs-traditional-scrapers-comparison.png בואו נסגור את הוויכוח: מתי כדאי להשתמש ב-Selenium, ומתי משהו כמו BeautifulSoup או Scrapy מתאים יותר? הנה השוואה קצרה:

כליהכי מתאים לתומך ב-JavaScript?מהירות ושימוש במשאבים
Seleniumאתרים דינמיים/אינטראקטיבייםכןאיטי יותר, משתמש ביותר זיכרון
BeautifulSoupגריפת HTML סטטי פשוטלאמהיר מאוד, קל משקל
Scrapyסריקה בנפח גבוה של אתרים סטטייםמוגבל*מהיר מאוד, אסינכרוני, מעט RAM
Thunderbitגריפה לעסקים בלי קודכן (AI)מהיר למשימות קטנות/בינוניות

*Scrapy יכול להתמודד עם חלק מהתוכן הדינמי באמצעות תוספים, אבל זה לא הצד החזק שלו (ScrapingBee).

מתי להשתמש ב-Selenium:

  • הנתונים מופיעים רק אחרי לחיצה, גלילה או התחברות
  • צריך לקיים אינטראקציה עם חלונות קופצים, גלילה אינסופית או לוחות בקרה דינמיים
  • סקרייפרים סטטיים פשוט לא מספיקים

מתי להשתמש ב-BeautifulSoup/Scrapy:

  • הנתונים נמצאים ב-HTML הראשוני
  • צריך לגרוף אלפי דפים במהירות
  • רוצים שימוש מינימלי במשאבים

ואם אתם רוצים לוותר לגמרי על כתיבת קוד, Thunderbit מאפשר לגרוף אתרים דינמיים בעזרת AI — פשוט לוחצים על “AI Suggest Fields” ומייצאים ל-Sheets, Notion או Airtable. (עוד על זה בהמשך.)

איך לגרוף כל אתר באמצעות AI Get Started Free

אוטומציה של משימות גריפת אתרים עם Selenium ו-Python

בואו נודה באמת: אף אחד לא רוצה להתעורר ב-2 בלילה כדי להריץ סקריפט גריפה. החדשות הטובות הן שאפשר לאוטומט את עבודות Selenium שלכם בעזרת כלי התזמון של Python או המתזמן של מערכת ההפעלה (כמו cron בלינוקס/מק או Task Scheduler ב-Windows).

שימוש בספריית schedule

import schedule
import time

def job():
    # קוד הגריפה שלכם כאן
    print("מגרף...")

schedule.every().day.at("09:00").do(job)

while True:
    schedule.run_pending()
    time.sleep(1)

או עם Cron (Linux/Mac)

הוסיפו את זה ל-crontab כדי להריץ כל שעה:

0 * * * * python /path/to/your_script.py

טיפים לאוטומציה:

  • הפעילו את Selenium במצב headless (ראו בהמשך) כדי להימנע מחלונות GUI קופצים.
  • רשמו שגיאות ושלחו לעצמכם התראות אם משהו משתבש.
  • תמיד סגרו את הדפדפן עם driver.quit() כדי לשחרר משאבים.

שיפור היעילות: טיפים לגריפת Selenium מהירה ואמינה יותר

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

1. הרצה במצב Headless

אין צורך לראות את Chrome נפתח ונסגר מאה פעמים. מצב headless מריץ את הדפדפן ברקע:

from selenium.webdriver.chrome.options import Options

opts = Options()
opts.headless = True
driver = webdriver.Chrome(options=opts)

2. חסימת תמונות ותוכן מיותר אחר

למה לטעון תמונות אם אתם רק גורפים טקסט? חסמו אותן כדי להאיץ את טעינת הדף:

prefs = {"profile.managed_default_content_settings.images": 2}
opts.add_experimental_option("prefs", prefs)

3. השתמשו בסלקטורים יעילים

  • העדיפו IDs או סלקטורי CSS פשוטים על פני XPath מורכב.
  • הימנעו מ-time.sleep() — השתמשו במקום זאת בהמתנות מפורשות (WebDriverWait).

4. אקראיות בעיכובים

הוסיפו השהיות אקראיות כדי לחקות גלישה אנושית ולהקטין סיכוי לחסימה:

import random, time

time.sleep(random.uniform(1, 3))

5. סיבוב User Agents ו-IP-ים (אם צריך)

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

6. ניהול סשנים ושגיאות

  • השתמשו בבלוקים של try/except כדי להתמודד בעדינות עם רכיבים חסרים.
  • רשמו שגיאות וצילמו מסכים לצורכי דיבוג.

לטיפים נוספים לאופטימיזציה, בדקו את המדריך של BrowserStack.

מתקדם: שילוב Selenium עם Thunderbit לייצוא נתונים מובנים

כאן הדברים נהיים ממש מעניינים — במיוחד אם אתם רוצים לחסוך זמן בניקוי נתונים ובייצוא.

אחרי שגרפתם נתונים גולמיים עם Selenium, תוכלו להשתמש ב-Thunderbit כדי:

  • זיהוי שדות אוטומטי: ה-AI של Thunderbit יכול לקרוא את הדפים או קובצי ה-CSV שגרפתם ולהציע שמות עמודות (“AI Suggest Fields”).
  • גריפת תתי-דפים: אם יש לכם רשימת כתובות URL (כמו דפי מוצרים), Thunderbit יכול לבקר בכל אחד מהם ולהעשיר את הטבלה שלכם בעוד פרטים — בלי קוד נוסף.
  • העשרת נתונים: תרגום, סיווג או ניתוח בזמן אמת.
  • ייצוא לכל מקום: ייצוא בלחיצה אחת ל-Google Sheets, Airtable, Notion, CSV או Excel.

דוגמת תהליך עבודה:

  1. השתמשו ב-Selenium כדי לגרוף רשימה של כתובות מוצרים וכותרות.
  2. ייצאו את הנתונים ל-CSV.
  3. פתחו את Thunderbit, ייבאו את ה-CSV ותנו ל-AI להציע שדות.
  4. השתמשו בגריפת תתי-הדפים של Thunderbit כדי לשלוף פרטים נוספים (כמו תמונות או מפרטים) מכל כתובת מוצר.
  5. ייצאו את מערך הנתונים הסופי והמאורגן שלכם ל-Sheets או Notion.

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

ייצוא נתוני Selenium עם Thunderbit AI

שיטות עבודה מומלצות ופתרון תקלות לגריפת אתרים עם Selenium

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

שיטות עבודה מומלצות

  • כבדו את robots.txt ואת תנאי האתר: תמיד בדקו אם הגריפה מותרת.
  • האטו את הבקשות: אל תעמיסו על השרתים — הוסיפו השהיות ושימו לב לשגיאות HTTP 429.
  • השתמשו ב-API כשיש: אם הנתונים זמינים באופן פומבי דרך API, עדיף להשתמש בו — זה בטוח ואמין יותר.
  • גרפו רק נתונים ציבוריים: הימנעו ממידע אישי או רגיש, והיו מודעים לחוקי פרטיות.
  • טפלו בחלונות קופצים ו-CAPTCHAs: אפשר להשתמש ב-Selenium כדי לסגור חלונות קופצים, אבל עם CAPTCHAs צריך להיזהר — קשה מאוד לאוטומט אותם.
  • החליפו user agents והשהיות באופן אקראי: עוזר להימנע מזיהוי וחסימה.

שגיאות נפוצות ותיקונים

שגיאהמה זה אומראיך מתקנים
NoSuchElementExceptionלא מצליחים למצוא את הרכיבבדקו שוב את הסלקטור; השתמשו בהמתנות
שגיאות Timeoutהדף או הרכיב לקחו יותר מדי זמןהגדילו את זמן ההמתנה; בדקו את מהירות הרשת
חוסר התאמה בין driver לדפדפןSelenium לא מצליח להפעיל את הדפדפןעדכנו את גרסאות ה-driver והדפדפן
קריסות סשןהדפדפן נסגר באופן בלתי צפויהשתמשו במצב headless; נהלו משאבים

לטיפים נוספים לפתרון בעיות, ראו את המדריך של Thunderbit ל-Selenium.

סיכום ונקודות מפתח

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

  • Selenium הוא הכלי המועדף לאתרים דינמיים ואינטראקטיביים.
  • שלושת השלבים המרכזיים: הגדרה, איתור, חילוץ ושמירה.
  • אוטומטו את הסקריפטים שלכם כדי לקבל עדכוני נתונים שוטפים.
  • אופטימיזציה למהירות ולאמינות באמצעות מצב headless, המתנות חכמות וסלקטורים יעילים.
  • שלבו את Selenium עם Thunderbit כדי להקל על מבנה הנתונים והייצוא — במיוחד אם בא לכם לוותר על כאבי הראש של הגיליונות.

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

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

נסו את Thunderbit AI Web Scraper בחינם Get Started Free

שאלות נפוצות

1. למה כדאי להשתמש ב-Selenium לגריפת אתרים במקום BeautifulSoup או Scrapy?
Selenium אידיאלי לגריפת אתרים דינמיים שבהם התוכן נטען אחרי פעולות משתמש או הרצת JavaScript. BeautifulSoup ו-Scrapy מהירים יותר ל-HTML סטטי, אבל לא יכולים לקיים אינטראקציה עם רכיבים דינמיים או לדמות לחיצות וגלילות.

2. איך אפשר לגרום ל-scraper שלי ב-Selenium לרוץ מהר יותר?
השתמשו במצב headless, חסמו תמונות ומשאבים מיותרים, השתמשו בסלקטורים יעילים והוסיפו השהיות אקראיות כדי לחקות גלישה אנושית. ראו את המדריך של BrowserStack לעוד טיפים.

3. אפשר לתזמן משימות גריפה ב-Selenium כך שירוצו אוטומטית?
כן! אפשר להשתמש בספריית schedule של Python או במתזמן של מערכת ההפעלה (cron או Task Scheduler) כדי להריץ סקריפטים במרווחים קבועים. אוטומציה של גריפה עוזרת לשמור על הנתונים מעודכנים.

4. מה הדרך הטובה ביותר לייצא נתונים שנגרפו עם Selenium?
אפשר להשתמש ב-Pandas כדי לשמור נתונים ל-CSV או Excel. לייצוא מתקדם יותר (Google Sheets, Notion, Airtable), ייבאו את הנתונים שלכם ל-Thunderbit והשתמשו ביכולות הייצוא שלו בלחיצה אחת.

5. איך אפשר להתמודד עם חלונות קופצים ו-CAPTCHAs ב-Selenium?
אפשר לסגור חלונות קופצים על ידי איתור ולחיצה על כפתורי הסגירה שלהם. CAPTCHAs קשים הרבה יותר — אם נתקלים בהם, שקלו פתרון ידני או שירות פתרון captcha, ותמיד כבדו את תנאי השימוש של האתר.

רוצים לראות עוד מדריכי גריפה, טיפים לאוטומציית AI או את החדשות האחרונות על כלי נתוני עסקים? הירשמו ל-בלוג Thunderbit או בקרו ב-ערוץ YouTube שלנו להדגמות מעשיות.

למידע נוסף

Shuai Guan
Shuai Guan
מנכ"ל Thunderbit | מומחה לאוטומציה של נתונים באמצעות AI Shuai Guan הוא המנכ"ל של Thunderbit ובוגר הפקולטה להנדסה של אוניברסיטת מישיגן. עם כמעט עשור של ניסיון בטכנולוגיה ובארכיטקטורת SaaS, הוא מתמחה בהפיכת מודלים מורכבים של AI לכלי חילוץ נתונים פרקטיים, ללא קוד. בבלוג הזה הוא משתף תובנות ישירות מהשטח, שנבחנו בפועל, על Web Scraping ואסטרטגיות אוטומציה שיעזרו לכם לבנות תהליכי עבודה חכמים יותר, מבוססי נתונים. כשאינו משפר תהליכי נתונים, הוא מביא את אותה תשומת לב לפרטים גם לתשוקה שלו לצילום.
Topics
Scraping with seleniumSelenium web scraping tutorialPython selenium scrape website
תוכן עניינים
Thunderbit · סוכן נתוני אינטרנט מבוסס AI

חלץ נתונים מכל דף בתוך קליק אחד

למעלה מ-250,000 משתמשים סומכים עליו
יש תוכנית חינמית
מדף אינטרנט לגיליון נתונים
תארו מה אתם צריכים — סוכן ה-AI של Thunderbit מחלץ את זה ומייצא ל-Excel, Google Sheets, Airtable או Notion. חינמי להתחלה.
Chrome Store Rating
PRODUCT HUNT#1 Product of the Week