בסוף השבוע האחרון שרפתי סיר שלם של קפה בניסיון לגרד את עמוד ה‑Best Sellers של Amazon בארבע דרכים שונות. שתיים עבדו מצוין, אחת כמעט גרמה ל‑IP שלי להיחסם, ואחת לקחה פשוט קליק אחד. הנה כל מה שלמדתי.
Amazon היא זירת מסחר ענקית — 600 מיליון רשומות מוצרים, מעל 310 מיליון חשבונות לקוחות פעילים, ומערכת דירוג Best Sellers Rank (BSR) שמתעדכנת כל שעה. אם אתם עושים מחקר מוצרים ל‑FBA, ניתוח תמחור מתחרים, או פשוט מנסים לזהות טרנדים לפני כולם — נתוני Best Sellers הם זהב טהור.
אבל להוציא את הנתונים האלה מ‑Amazon ולהכניס אותם לגיליון אלקטרוני? כאן העניינים מתחילים להסתבך. בדקתי requests + BeautifulSoup, Selenium, API לגרידה, וגם את Thunderbit (ה‑AI web scraper ללא קוד שלנו) כדי לראות איזו גישה באמת מספקת תוצאות — ואילו גישות משאירות אתכם מול עמוד CAPTCHA.
מה זה Amazon Best Sellers, ולמה זה בכלל חשוב?
Amazon Best Sellers Rank (BSR) הוא טבלת הדירוג בזמן אמת של Amazon, שממקמת מוצרים לפי נפח מכירות בתוך כל קטגוריה. אפשר לחשוב על זה כמו תחרות פופולריות שמתעדכנת מדי שעה, על בסיס נתוני מכירות עדכניים והיסטוריים גם יחד. Amazon עצמה מתארת זאת כך:
"The Amazon Best Sellers calculation is based on Amazon sales and is updated hourly to reflect recent and historical sales of every item sold on Amazon." — Amazon Seller Central
עמוד Best Sellers מציג את 100 המוצרים המובילים בכל קטגוריה, מחולקים לשני עמודים של 50 פריטים כל אחד. עמוד 1 כולל את הדירוגים #1–50, ועמוד 2 כולל את #51–100. Amazon אישרה שהתצוגות והביקורות של לקוחות לא משפיעות על BSR — זהו מדד שמבוסס אך ורק על מכירות.
מי בכלל צריך את הנתונים האלה? מוכרי e-commerce שמחפשים מוצרים ל‑FBA, צוותי מכירות שבונים מודיעין תחרותי, צוותי תפעול שעוקבים אחרי מגמות תמחור, וחוקרי שוק שמנטרים צמיחה בקטגוריות. מניסיון שלי, כל מי שמוכר ב‑Amazon או מתחרה בה, בסוף צריך את הנתונים האלה בגיליון.
למה לגרד את Amazon Best Sellers עם Python?
מחקר מוצרים ידני הוא בור בלי תחתית של זמן. מחקר של McKinsey מצא שעובדים מבזבזים 9.3 שעות בשבוע רק על חיפוש ואיסוף מידע. עבור צוותי e-commerce זה מתורגם לשעות של לחיצה בין עמודים ב‑Amazon, העתקת שמות מוצרים ומחירים, והדבקה לגיליונות — רק כדי לחזור על כל זה שוב בשבוע הבא.
הנה מבט מהיר על מקרי השימוש שהופכים גרידה של Best Sellers לכדאית:
| מקרה שימוש | מה מקבלים | מי מרוויח |
|---|---|---|
| מחקר מוצרים ל‑FBA | זיהוי מוצרים עם ביקוש גבוה ותחרות נמוכה לפי BSR ומספר ביקורות | מוכרי Amazon, דרופשיפרים |
| תמחור תחרותי | מעקב אחרי שינויי מחירים במוצרים המובילים בקטגוריה שלכם | צוותי e-commerce, אנליסטים של תמחור |
| ניטור מגמות שוק | זיהוי קטגוריות בצמיחה ושינויים עונתיים | מנהלי מוצר, חוקרי שוק |
| יצירת לידים | בניית רשימות של מותגים מובילים וקווי המוצרים שלהם | צוותי מכירות, outreach ל‑B2B |
| ניתוח מתחרים | השוואת המוצרים שלכם מול המובילים בקטגוריה | מנהלי מותג, צוותי אסטרטגיה |
ה‑ROI אמיתי: סקר של Salesforce בקרב 2,700 אנשי מסחר מצא שכלי AI חוסכים לאנשי e-commerce בממוצע 6.4 שעות בשבוע. בנוסף, מוכרים שמשתמשים במעקב מחירים אוטומטי מחזיקים ב‑Buy Box 67% מהזמן לעומת 42% אצל עוקבים ידניים — קפיצה של 37% במכירות שנובעת מתגובה מהירה יותר לשינויי מחיר.
4 דרכים לגרד את Amazon Best Sellers עם Python: השוואה מהירה
לפני שנצלול להדרכות צעד‑אחר‑צעד, הנה ההשוואה שהייתי שמח לראות לפני שהתחלתי לבדוק. הטבלה הזו אמורה לעזור לכם לבחור את השיטה המתאימה למצב שלכם:
| קריטריון | requests + BS4 | Selenium | Scraping API (למשל Scrape.do) | Thunderbit (ללא קוד) |
|---|---|---|---|---|
| קושי בהקמה | בינוני | גבוה (driver, דפדפן) | נמוך (API key) | נמוך מאוד (תוסף Chrome) |
| טיפול בטעינה מדורגת | לא | כן (באמצעות גלילה) | כן (HTML מרונדר) | כן (ה‑AI מטפל ברינדור) |
| עמידות בפני חסימות בוט | נמוכה (חסימות IP) | בינונית (ניתנת לזיהוי) | גבוהה (פרוקסי מתחלפים) | גבוהה (מצב cloud + browser) |
| עומס תחזוקה | גבוה (selectors נשברים) | גבוה (עדכוני driver + selectors) | נמוך | נמוך מאוד (ה‑AI מסתגל לשינויים בפריסה) |
| עלות | חינמי | חינמי | בתשלום (לפי בקשה) | שכבה חינמית + תוכניות בתשלום |
| מתאים במיוחד ל | גרידות חד‑פעמיות, לימוד | עמודי JS כבדים, התחברות נדרשת | סקייל / פרודקשן | לא‑מפתחים, מחקר מהיר, ניטור חוזר |
אם אתם רוצים ללמוד את יסודות הגרידה ב‑Python, התחילו עם שיטה 1 או 2. אם אתם צריכים אמינות ברמת פרודקשן, לכו על שיטה 3. אם אתם רוצים תוצאות בלחיצה אחת בלי לכתוב קוד, קפצו ישר לשיטה 4.
לפני שמתחילים
- רמת קושי: מתחילים עד ביניים (תלוי בשיטה)
- זמן נדרש: כ‑15 דקות ל‑Thunderbit, כ‑45 דקות לשיטות Python
- מה צריך: Python 3.8+ (לשיטות 1–3), דפדפן Chrome, Thunderbit Chrome Extension (לשיטה 4), וכתובת URL של קטגוריית Amazon Best Sellers שאליה מכוונים
שיטה 1: גרידת Amazon Best Sellers עם requests + BeautifulSoup
זו גישה קלה וידידותית למתחילים — בלי אוטומציה של דפדפן, רק בקשות HTTP וניתוח HTML. והיא גם לימדה אותי הכי הרבה על מנגנוני ההגנה של Amazon נגד גרידה.
שלב 1: הקמת סביבת העבודה
התקינו את החבילות הנדרשות:
pip install requests beautifulsoup4 pandas
ואז הגדירו את הייבוא:
import requests
from bs4 import BeautifulSoup
import pandas as pd
import random
import time
שלב 2: שליחת בקשה עם כותרות מציאותיות
Amazon חוסמת בקשות שנראות כמו בוטים. קו ההגנה הבסיסי ביותר הוא כותרת User-Agent שמתחזה לדפדפן אמיתי. הנה קטע קוד עם מאגר של מחרוזות User-Agent עדכניות וריאליסטיות (מבוסס על Geekflare, מרץ 2026):
USER_AGENTS = [
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:149.0) Gecko/20100101 Firefox/149.0",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 15.7; rv:149.0) Gecko/20100101 Firefox/149.0",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 15_7_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Safari/605.1.15",
]
headers = {"User-Agent": random.choice(USER_AGENTS)}
url = "https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/"
response = requests.get(url, headers=headers)
print(response.status_code) # Should be 200
אם קיבלתם קוד 200, אתם בפנים. אם מופיע 503 או שמופניתם לעמוד CAPTCHA, Amazon זיהתה את הבקשה שלכם.
שלב 3: ניתוח נתוני המוצרים עם BeautifulSoup
בדקו את ה‑HTML של העמוד ב‑DevTools של הדפדפן שלכם (קליק ימני → Inspect). מכולות המוצרים משתמשות ב‑ID gridItemRoot. בתוך כל מכולה תמצאו את שם המוצר, המחיר, הדירוג וה‑URL.
soup = BeautifulSoup(response.text, "html.parser")
products = []
for item in soup.find_all("div", id="gridItemRoot"):
title_tag = item.find("div", class_="_cDEzb_p13n-sc-css-line-clamp-3_g3dy1")
price_tag = item.find("span", class_="_cDEzb_p13n-sc-price_3mJ9Z")
link_tag = item.find("a", class_="a-link-normal")
title = title_tag.get_text(strip=True) if title_tag else "N/A"
price = price_tag.get_text(strip=True) if price_tag else "N/A"
url = "https://www.amazon.com" + link_tag["href"] if link_tag else "N/A"
products.append({"Title": title, "Price": price, "URL": url})
אזהרה: שמות המחלקות שמתחילים ב‑
_cDEzb_הם hashes של CSS modules ש‑Amazon מייצרת מחדש מדי פעם. ה‑ID gridItemRootוהמחלקהa-link-normalיציבים יותר, אבל תמיד כדאי לאמת selectors ב‑DevTools לפני שמריצים את הסקרייפר.
שלב 4: ייצוא ל‑CSV
df = pd.DataFrame(products)
df.to_csv("amazon_best_sellers.csv", index=False)
print(f"Scraped {len(products)} products")
למה לצפות — ומה בדרך כלל משתבש
בבדיקה שלי, השיטה הזו החזירה בערך 30 מוצרים במקום 50. זו לא תקלה בקוד — זו הטעינה המדורגת של Amazon. רק כ‑30 מוצרים נטענים בתחילת העמוד; השאר מופיעים אחרי גלילה, מה שדורש הרצת JavaScript ש‑requests לא יודע לבצע.
מגבלות נוספות:
- חסימות IP מגיעות מהר בלי rotation של פרוקסי (אצלי נחסמתי אחרי בערך 15 בקשות ברצף)
- selectors של CSS נשברים כש‑Amazon מעדכנת את פריסת העמוד — וזה קורה לה די הרבה
- אין טיפול מובנה בפאג'ינציה
ללימוד גרידה ב‑Python זו דרך מצוינת. לשימוש בפרודקשן — היא שבירה מדי.
שיטה 2: גרידת Amazon Best Sellers עם Selenium
Selenium פותר את בעיית הטעינה המדורגת בכך שהוא מפעיל דפדפן אמיתי — כבד יותר להקמה, אבל הוא קולט את כל 50 המוצרים בכל עמוד.
שלב 1: התקנת Selenium
pip install selenium pandas
הבשורה הטובה: החל מ‑Selenium 4.6+, כבר לא צריך את webdriver-manager. Selenium Manager מטפל בהורדת ה‑driver אוטומטית.
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time
import pandas as pd
options = Options()
options.add_argument("--headless=new")
options.add_argument("--window-size=1920,1080")
options.add_argument("--disable-blink-features=AutomationControlled")
driver = webdriver.Chrome(options=options)
הדגל --headless=new (שהוצג ב‑Chrome 109+) משתמש באותו מנגנון רינדור כמו Chrome רגיל, ולכן קשה יותר ל‑Amazon לזהות שמדובר באוטומציה.
שלב 2: גלילה מעבר לטעינה המדורגת
זה השלב שהופך את Selenium לשווה את העומס של ההקמה. Amazon Best Sellers טוען בהתחלה רק כ‑30 מוצרים — השאר מגיעים אחרי גלילה.
def scroll_page(driver, scrolls=5, delay=2):
for _ in range(scrolls):
driver.find_element(By.TAG_NAME, "body").send_keys(Keys.PAGE_DOWN)
time.sleep(delay)
driver.get("https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/")
time.sleep(3)
scroll_page(driver)
אחרי הגלילה, כל 50 המוצרים אמורים להיות מרונדרים ב‑DOM. מצאתי ש‑5 גלילות Page Down עם השהיה של 2 שניות מספיקות, אבל ייתכן שתצטרכו להתאים זאת למהירות החיבור שלכם.
שלב 3: חילוץ נתוני המוצר
items = driver.find_elements(By.ID, "gridItemRoot")
products = []
for item in items:
try:
title = item.find_element(By.CSS_SELECTOR, "div._cDEzb_p13n-sc-css-line-clamp-3_g3dy1").text
except:
title = "N/A"
try:
price = item.find_element(By.CSS_SELECTOR, "span._cDEzb_p13n-sc-price_3mJ9Z").text
except:
price = "N/A"
try:
url = item.find_element(By.CSS_SELECTOR, "a.a-link-normal").get_attribute("href")
except:
url = "N/A"
products.append({"Title": title, "Price": price, "URL": url})
שימוש ב‑try/except לכל חילוץ הוא חשוב — חלק מהמוצרים עשויים להיות חסרי מלאי או בעלי שדות חסרים, ולא תרצו שאלמנט בעייתי אחד יפיל את כל הגרידה.
שלב 4: טיפול בפאג'ינציה
Amazon מחלקת 100 מוצרים מובילים לשני עמודים עם מבני URL שונים:
urls = [
"https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/",
"https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/ref=zg_bs_pg_2_electronics?_encoding=UTF8&pg=2"
]
all_products = []
for url in urls:
driver.get(url)
time.sleep(3)
scroll_page(driver)
# ... extract products as above ...
all_products.extend(products)
driver.quit()
למה לצפות
בבדיקה שלי, Selenium קלט את כל 50 המוצרים בכל עמוד — ניצחון ברור על requests + BS4. החיסרון: זה לקח בערך 45 שניות לעמוד (כולל זמני גלילה), ועדיין נחסמתי אחרי שהרצתי את זה יותר מדי פעמים בלי rotation של פרוקסי. גם Selenium ניתן לזיהוי על ידי מנגנוני הבוט של Amazon, אפילו עם דגלי anti-detection — לסקייל רציני תצטרכו אמצעים נוספים (ראו את מדריך ה‑Anti-Ban בהמשך).
נקודות כאב נוספות:
- עדיין קורים מדי פעם אי‑התאמות בגרסאות WebDriver, למרות ש‑Selenium Manager צמצם מאוד את התופעה
- צריך לעדכן selectors בכל פעם ש‑Amazon משנה את ה‑DOM שלה
- צריכת הזיכרון גבוהה — כל מופע דפדפן לוקח 200–400MB RAM
שיטה 3: גרידת Amazon Best Sellers עם Scraping API
Scraping APIs הן הגישה של "תנו למישהו אחר לטפל בחלקים הקשים". שירותים כמו Scrape.do, Oxylabs ו‑ScrapingBee מנהלים עבורכם rotation של פרוקסי, רינדור JavaScript ואמצעי anti-bot — אתם רק שולחים URL ומקבלים HTML או JSON בחזרה.
איך זה עובד
אתם שולחים את כתובת ה‑URL של היעד ל‑endpoint של ה‑API. ה‑API מרנדר את העמוד באמצעות דפדפן אמיתי על התשתית שלו, מחליף פרוקסי, מטפל ב‑CAPTCHA ומחזיר HTML נקי. אחר כך מנתחים את ה‑HTML שהתקבל עם BeautifulSoup כמו תמיד.
שלב 1: שליחת בקשה דרך ה‑API
הנה דוגמה עם Scrape.do (המחירים מתחילים ב‑29 דולר לחודש עבור 150,000 קרדיטים, כאשר 1 קרדיט = בקשה אחת בלי קשר לרינדור):
import requests
from bs4 import BeautifulSoup
api_token = "YOUR_API_TOKEN"
target_url = "https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/"
api_url = f"https://api.scrape.do?token={api_token}&url={target_url}&render=true&geoCode=us"
response = requests.get(api_url)
soup = BeautifulSoup(response.text, "html.parser")
מכאן, הניתוח זהה לשיטה 1 — אותם selectors, אותה לוגיקת חילוץ.
בדיקת מחירים
הנה מה שגובים ה‑APIs הגדולים לכל 1,000 בקשות ל‑Amazon, לפי התעריף הזמין הטוב ביותר:
| ספק | עלות לכל 1,000 בקשות | הערות |
|---|---|---|
| Scrape.do | כ‑$0.19 | תעריף קבוע, בלי מכפילי קרדיטים |
| Oxylabs | כ‑$1.80 | מכפיל 5x עבור רינדור JS |
| ScrapingBee | כ‑$4.90 | מכפילים של 5–25x לתכונות פרימיום |
| Bright Data | $5.00+ | הנתונים המקיפים ביותר (686 שדות/מוצר) אך איטי ביותר (~66 שניות/בקשה) |
יתרונות וחסרונות
יתרונות: אמינות גבוהה (כ~99% הצלחה ב‑Amazon אצל הספקים המובילים), אין צורך בתחזוקת driver, הטיפול ב‑anti-bot אוטומטי, ומתאים היטב לסקייל.
חסרונות: תשלום לפי בקשה (העלויות מצטברות בסקייל), עדיין צריך לכתוב קוד ניתוח, ועדיין רגיש לשינויים ב‑CSS selectors. עבור 100,000 עמודים בחודש, השוואת העלויות דרמטית: בנייה פנימית עולה בערך $1.98 מיליון על פני שלוש שנים לעומת $332 אלף עם ספק API — חיסכון של 71%.
נקודת האיזון מגיעה בדרך כלל סביב 500 אלף–מיליון בקשות בחודש. מתחת לזה, חיסכון הזמן של ה‑API גובר בהרבה על העלות.
שיטה 4: גרידת Amazon Best Sellers עם Thunderbit (בלי Python בכלל)
גילוי נאות: אני עובד ב‑Thunderbit, אז קחו את הסעיף הזה בהקשר הזה. עם זאת, באמת בדקתי את כל ארבע השיטות אחת אחרי השנייה, וההבדל בזמן עד לקבלת נתונים היה בולט מאוד.
Thunderbit הוא AI web scraper שפועל כתוסף ל‑Chrome. הרעיון המרכזי: במקום לכתוב selectors של CSS או קוד Python, ה‑AI קורא את העמוד ומבין אילו נתונים צריך לחלץ. עבור Amazon Best Sellers במיוחד, ל‑Thunderbit יש templates מובנים שעובדים בלחיצה אחת.
שלב 1: התקנת תוסף Chrome של Thunderbit
עברו ל‑Chrome Web Store ולחצו על "Add to Chrome." הירשמו לחשבון חינמי — השכבה החינמית נותנת מספיק קרדיטים כדי לבדוק את זה.
שלב 2: ניווט לעמוד Amazon Best Sellers
פתחו ב‑Chrome כל עמוד קטגוריה של Amazon Best Sellers. למשל:
https://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/
שלב 3: לחיצה על "One Click Extract"
פתחו את סרגל הצד של Thunderbit ולחצו על "One Click Extract." ה‑AI מנתח את מבנה העמוד ומזהה את העמודות: Product Name, Price, Rating, Image URL, Vendor, Product URL ו‑Rank. בבדיקה שלי הוא זיהה נכון את כל השדות הרלוונטיים בתוך כ‑3 שניות.

אפשר לשנות שמות של עמודות, להסיר אותן או להוסיף חדשות. אפשר אפילו להוסיף prompts מותאמים אישית ל‑AI לכל שדה — למשל, "categorize as Electronics/Apparel/Home" כדי להוסיף לכל מוצר תג קטגוריה.
שלב 4: לחיצה על "Scrape"
לחצו על כפתור "Scrape". Thunderbit ממלא טבלה מובנית עם כל נתוני המוצרים מהעמוד. במצב cloud, הוא מעבד עד 50 עמודים במקביל, ומטפל אוטומטית בטעינה מדורגת ובפאג'ינציה.
שלב 5: ייצוא בחינם
לחצו על "Export" ובחרו יעד: Excel, Google Sheets, Airtable או Notion. כל הייצוא חינמי בכל התוכניות — בלי חיובים נסתרים.

כל התהליך לקח לי בערך 90 שניות מרגע פתיחת העמוד ועד לקובץ גיליון מלא. להשוואה: שיטה 1 לקחה בערך 20 דקות (כולל ניפוי הבאגים של הטעינה המדורגת), שיטה 2 לקחה בערך 35 דקות (כולל ההקמה של Selenium), ושיטה 3 לקחה בערך 15 דקות (כולל פתיחת חשבון ל‑API).
למה Thunderbit עובד טוב מול Amazon
מכיוון שה‑AI קורא את העמוד מחדש בכל פעם, הוא מסתגל לשינויי פריסה באופן אוטומטי — בלי selectors של CSS שצריך לתחזק. זה פותר ישירות את התלונה הנפוצה ביותר בפורומי גרידה: "A basic web scraper won't suffice, you need to add so many 'catches' for element changes." כש‑Amazon משנה את ה‑DOM שלה (וזה קורה לה לעיתים קרובות), לא צריך לעדכן כלום.
מצב cloud scraping מטפל ב‑proxy rotation, ברינדור ובאמצעי anti-bot באופן שקוף. עבור משתמשים שרוצים פתרון של "פשוט עובד", זה מוריד לגמרי את כאב הראש של חסימות.
חסכו את תחזוקת ה‑Selectors כשה‑markup של Amazon משתנה, selectors של BeautifulSoup נשברים. ה‑AI של Thunderbit קורא את העמוד מחדש בכל הרצה ומזהה שוב את השדות. Get Started Free
מדריך Anti-Ban: איך להימנע מחסימה ב‑Amazon
מנגנוני הזיהוי של Amazon אגרסיביים. אצלי ה‑IP נחסם זמנית במהלך הבדיקה, וגם משתמשי פורומים מדווחים על אותו דבר: "errors everywhere, amazon even started redirecting me to the homepage." אם אתם הולכים על מסלול Python (שיטות 1–3), הסעיף הזה קריטי.
הנה אסטרטגיה שכבתית, מדורגת מהבסיסי למתקדם:
1. החלפת מחרוזות User-Agent
שליחת אותו User-Agent שוב ושוב היא דגל אדום. השתמשו במאגר של 5+ מחרוזות מדוגמת הקוד בשיטה 1, ובחרו אחת אקראית לכל בקשה:
headers = {"User-Agent": random.choice(USER_AGENTS)}
2. הוספת השהיות אקראיות בין בקשות
השהיות קבועות קל לזהות (יש להן דפוס). השהיות אקראיות בטוחות יותר:
time.sleep(random.uniform(2, 5))
מצאתי ש‑2–5 שניות בין בקשות שמרו אותי מתחת לרדאר עבור קבוצות קטנות (פחות מ‑50 בקשות). לריצות גדולות יותר, כדאי להעלות ל‑3–7 שניות.
3. שימוש ב‑Proxy Rotation
זה החלק הכי חשוב. בנצ'מרקים של Proxyway הראו ש‑residential proxies מגיעים לכ‑94% הצלחה ב‑Amazon לעומת כ‑59% עבור datacenter proxies — פער של 35 נקודות אחוז. מנגנון הזיהוי של Amazon כולל TLS fingerprinting, ניתוח התנהגות, והגבלת קצב לפי IP, כך ש‑datacenter IPs סטנדרטיים מסומנים תוך שניות.
Residential proxies יקרים יותר ($2–$12 לכל GB, תלוי בספק), אבל הרבה יותר אמינים. לדוגמה:
proxies = {
"http": "http://user:pass@residential-proxy.example.com:8080",
"https": "http://user:pass@residential-proxy.example.com:8080"
}
response = requests.get(url, headers=headers, proxies=proxies)
4. חיזוק טביעת האצבע של הדפדפן (Selenium)
options.add_argument('--disable-blink-features=AutomationControlled')
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
# After driver init, remove navigator.webdriver flag
driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', {
'source': "Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"
})
5. ניהול Sessions ו‑Cookies
שמירה של cookies בין בקשות גורמת לסקרייפר שלכם להיראות יותר כמו סשן משתמש אמיתי:
session = requests.Session()
# Visit homepage first to get realistic cookies
session.get("https://www.amazon.com", headers=headers)
time.sleep(2)
# Then scrape your target page
response = session.get(target_url, headers=headers)
6. מתי פשוט לוותר על כאב הראש
למי שלא רוצה להתעסק עם כל זה, ה‑cloud scraping של Thunderbit מטפל ב‑proxy rotation, ברינדור ובאמצעי anti-bot באופן שקוף. גם Scraping APIs מטפלות ברוב הנושאים האלה כברירת מחדל. מניסיוני, הזמן שמבוזבז על ניפוי תקלות anti-ban לעיתים עולה על הזמן של כתיבת קוד הגרידה עצמו — לכן גישת ה"פשוט עובד" באמת משתלמת.
העשרת תתי‑עמודים: גרידת עמודי מוצר לקבלת נתונים עשירים יותר
עמוד ה‑Best Sellers מציג רק מידע בסיסי — כותרת, מחיר, דירוג, Rank. אבל הערך האמיתי למחקר FBA נמצא בעמודי המוצר עצמם. הנה מה מפסידים אם מגרדים רק את עמוד הרשימה:
| שדה | עמוד רשימה | עמוד פרטי מוצר |
|---|---|---|
| שם המוצר | ✅ | ✅ |
| מחיר | ✅ | ✅ |
| דירוג | ✅ | ✅ |
| BSR Rank | ✅ | ✅ (כולל דירוגים לפי תת‑קטגוריה) |
| מותג | ❌ | ✅ |
| ASIN | ❌ | ✅ |
| תאריך הופעה ראשון | ❌ | ✅ |
| מידות/משקל | ❌ | ✅ |
| מספר מוכרים | ❌ | ✅ |
| תכונות בנקודות | ❌ | ✅ |
| בעל ה‑Buy Box | ❌ | ✅ |
השדה "Date First Available" חשוב במיוחד — הוא מראה כמה זמן המוצר כבר בשוק, וזהו אות משמעותי לניתוח תחרות. גם מספר המוכרים ובעל ה‑Buy Box עוזרים להעריך אם שווה להיכנס לנישה מסוימת (אם ל‑Amazon עצמה יש מעל 30% מנתח ה‑Buy Box, התחרות שם קשה מאוד).
גישת Python: מעבר בלולאה על כתובות מוצר
אחרי שאוספים את כתובות המוצרים מעמוד הרשימה, עוברים על כל אחת מהן עם השהיה:
for product in products:
time.sleep(random.uniform(3, 6))
detail_response = session.get(product["URL"], headers={"User-Agent": random.choice(USER_AGENTS)})
detail_soup = BeautifulSoup(detail_response.text, "html.parser")
# Extract brand
brand_tag = detail_soup.find("a", id="bylineInfo")
product["Brand"] = brand_tag.get_text(strip=True) if brand_tag else "N/A"
# Extract ASIN from page source or URL
# Extract Date First Available from product details table
# ... additional fields ...
אזהרה הוגנת: מעבר על 100 עמודי מוצר בודדים מגדיל משמעותית את סיכון החסימה. קחו בחשבון rotation של פרוקסי והשהיות ארוכות יותר.
גישת Thunderbit: גרידת תתי‑עמודים בלחיצה אחת
אחרי גרידת עמוד הרשימה לטבלה, לחצו על "Scrape Subpages" ב‑Thunderbit. ה‑AI מבקר בכל כתובת מוצר ומעשיר את הטבלה בעמודות נוספות — מותג, ASIN, מפרטים, תכונות — באופן אוטומטי. בלי קוד נוסף, בלי selectors, בלי הקמה. זה שימושי במיוחד לצוותי e-commerce שצריכים את התמונה המלאה לצורכי sourcing, אבל לא רוצים לכתוב ולתחזק parser לעמודי פרטים.
אוטומציה של גרידות חוזרות: ניטור Best Sellers לאורך זמן
גרידה חד‑פעמית היא שימושית, אבל ניטור מתמשך הוא המקום שבו היתרון התחרותי האמיתי נמצא. מעקב אחרי אילו מוצרים עולים ויורדים, זיהוי טרנדים מוקדם, וניטור שינויי מחיר לאורך שבועות או חודשים — זה מה שמבדיל בין מחקר מזדמן לבין קבלת החלטות מבוססת נתונים.
גישת Python: תזמון עם Cron
ב‑Linux/Mac אפשר לתזמן את סקריפט ה‑Python שלכם עם cron. הנה רשומת crontab לגרידה יומית בשעה 8:00 בבוקר:
0 8 * * * /usr/bin/python3 /home/user/amazon_scraper.py >> /home/user/logs/scrape.log 2>&1
לגרידה שבועית בכל יום שני ב‑9:00 בבוקר:
0 9 * * 1 /usr/bin/python3 /home/user/amazon_scraper.py >> /home/user/logs/scrape.log 2>&1
ב‑Windows אפשר להשתמש ב‑Task Scheduler כדי להשיג את אותו הדבר. לתזמון שרץ תמיד בלי להשאיר את הלפטופ דולק, אפשר לפרוס ל‑VPS או ל‑AWS Lambda — אבל זה מוסיף מורכבות תשתיתית.
הוסיפו לוגים והודעות שגיאה כדי לתפוס ריצות שנכשלו. אין דבר גרוע יותר מלגלות שהסקרייפר נשבר בשקט לפני שבועיים.
גישת Thunderbit: Scheduled Scraper בשפה פשוטה
ה‑Scheduled Scraper של Thunderbit מאפשר לתאר את התדירות בשפה טבעית — הקלידו "every Monday at 9am" או "every day at 8am" וה‑AI יפרש את הלוח. הגרידות רצות על שרתי ה‑cloud של Thunderbit (לא צריך דפדפן או מחשב פועלים), והנתונים מיוצאים אוטומטית ל‑Google Sheets או Airtable. כך מתקבלת דשבורד ניטור חי בלי ניהול שרתים — אידיאלי לצוותי תפעול שרוצים נראות שוטפת בלי עומס DevOps.
שיקולים משפטיים ואתיים בגרידה של Amazon
אני לא עורך דין, וזו לא ייעוץ משפטי. אבל התעלמות מהנוף המשפטי במדריך גרידה תהיה לא אחראית — משתמשי פורומים מעלים במפורש חששות לגבי תנאי השימוש, ובצדק.
robots.txt של Amazon: נכון ל‑2026, הקובץ robots.txt של Amazon כולל 80+ נתיבי Disallow ספציפיים, אבל /gp/bestsellers/ לא חסום במפורש עבור user agents רגילים. עם זאת, יותר מ‑35 user agents שמזוהים עם AI (כמו ClaudeBot, GPTBot, Scrapy וכו') מקבלים חסימה גורפת של Disallow: /. העובדה שאין חסימה מפורשת לא אומרת ש‑Amazon מעודדת גרידה.
תנאי השימוש של Amazon: Conditions of Use של Amazon (עודכנו במאי 2025) אוסרים במפורש על "using any automated process or technology to access, acquire, copy, or monitor any part of the Amazon Website" ללא הרשאה בכתב. זה לא תיאורטי — Amazon תבעה את Perplexity AI בנובמבר 2025 על גישה אוטומטית לא מורשית וזכתה בצו מניעה זמני.
התקדים hiQ v. LinkedIn: ב‑hiQ Labs v. LinkedIn (המעגל התשיעי, 2022), בית המשפט קבע כי גרידה של מידע זמין לציבור כנראה לא מפרה את Computer Fraud and Abuse Act. אבל hiQ בסופו של דבר התפשרה והסכימה להפסיק לגרד — ניצחון מול CFAA לא מגן מפני תביעות על הפרת חוזה.
הנחיות מעשיות:
- גרדו רק נתונים זמינים לציבור (מחירים, BSR, כותרות מוצרים — לא PII)
- כבדו rate limits ואל תעמיסו על השרתים
- השתמשו בנתונים למודיעין תחרותי לגיטימי
- התייעצו עם יועץ משפטי משלכם לפני גרידה בקנה מידה גדול
- היו מודעים לכך ש‑20+ מדינות בארה״ב כבר מחזיקות חקיקת פרטיות מקיפה
ה‑cloud scraping של Thunderbit משתמש בדפוסי בקשות סטנדרטיים הדומים לדפדפן, אבל תמיד כדאי לוודא התאמה עם היועץ המשפטי שלכם.
אין צורך ב‑Python בשביל זה אם המטרה היא גיליון ולא pipeline, קליק אחד מוביל לשם. מייצאים ישר ל‑Excel, Google Sheets, Airtable או Notion. Get Started Free
באיזו שיטה כדאי לבחור? מדריך החלטה מהיר
הגרסה הקצרה:
- "אני לומד Python ורוצה פרויקט לסוף השבוע." → שיטה 1 (requests + BeautifulSoup). תלמדו המון על בקשות HTTP, ניתוח HTML ומנגנוני ההגנה של Amazon.
- "אני צריך לגרד עמודים כבדים ב‑JavaScript או סשנים עם התחברות." → שיטה 2 (Selenium). היא כבדה יותר אבל יודעת להתמודד עם תוכן דינמי.
- "אני מריץ גרידות פרודקשן בסקייל." → שיטה 3 (Scraping API). תנו למישהו אחר לנהל את הפרוקסי והרינדור. עלות הבעלות הכוללת נוטה לטובת APIs מתחת ל‑500K בקשות בחודש.
- "אני לא מפתח ורוצה נתונים תוך 2 דקות." → שיטה 4 (Thunderbit). בלי קוד, בלי selectors, בלי תחזוקה.
- "אני צריך ניטור מתמשך בלי לנהל שרתים." → Thunderbit Scheduled Scraper. הגדירו ושכחו.
נסו את Thunderbit ל‑Amazon Best Sellers Get Started Free
סיכום ותובנות מרכזיות
אחרי סוף שבוע של בדיקות, הנה מה שבאמת נשאר:
requests + BeautifulSoup מצוין ללימוד, אבל מגבלת הטעינה המדורגת (רק כ‑30 מתוך 50 מוצרים) וה‑CSS selectors השבריריים הופכים אותו ללא מעשי לשימוש פרודקשן.
Selenium פותר את בעיית הטעינה המדורגת וקולט את כל 50 המוצרים בכל עמוד, אבל הוא איטי, זולל זיכרון, ועדיין ניתן לזיהוי על ידי מנגנוני ההגנה של Amazon.
Scraping APIs מציעות את האמינות הטובה ביותר לגרידה ברמת פרודקשן — כ~99% הצלחה ב‑Amazon — אבל העלויות מצטברות ועדיין צריך לכתוב קוד ניתוח.
Thunderbit סיפק את זמן‑עד‑נתונים המהיר ביותר בפער גדול. ה‑AI מטפל בשינויי פריסה, טעינה מדורגת, פאג'ינציה ואמצעי anti-bot בלי שום הגדרות. למשתמשים לא טכניים או לצוותים שצריכים נתונים חוזרים בלי עומס DevOps, זו האפשרות הפרקטית ביותר.
הלקח הכי גדול? מנגנוני ההגנה של Amazon ושינויי הפריסה התכופים שלה גורמים לכך שפתרונות בלי תחזוקה חוסכים הכי הרבה זמן בטווח הארוך. כל שעה שאתם מבזבזים על ניפוי selectors שבורים והחלפת פרוקסי היא שעה שאתם לא משקיעים בניתוח אמיתי.
רוצים לנסות את הגישה ללא קוד? השכבה החינמית של Thunderbit נותנת מספיק קרדיטים כדי לגרד כמה קטגוריות Best Sellers ולראות את התוצאות בעצמכם. מעדיפים את מסלול Python? הדוגמאות שלמעלה אמורות לתת לכם נקודת התחלה טובה. כך או כך, תגיעו לנתוני Amazon Best Sellers בתוך גיליון — במקום להסתכל על לשונית דפדפן.
לעוד מידע על גישות לגרידה, בדקו את המדריכים שלנו על גרידת מוצרים וביקורות מ‑Amazon, חילוץ נתונים מאתרים ל‑Excel, ו‑ה‑AI web scrapers הטובים ביותר. אפשר גם לצפות בהדרכות שלב‑אחר‑שלב בערוץ ה‑YouTube של Thunderbit.
למידע נוסף


