Webul nu mai arată ca acum câțiva ani. Astăzi, aproape orice site pe care îl vizitezi este alimentat de JavaScript și își încarcă conținutul pe parcurs — gândește-te la derularea infinită, la ferestrele pop-up și la dashboardurile care își arată datele abia după un clic sau două. De fapt, un impresionant 98,7% dintre toate site-urile folosesc acum JavaScript, ceea ce înseamnă că instrumentele vechi de scraping, care citesc doar HTML static, ratează o mulțime de date valoroase. Dacă ai încercat vreodată să extragi prețuri de produse de pe un site modern de e-commerce sau să preiei anunțuri imobiliare de pe o hartă interactivă, știi frustrarea: datele pe care le vrei pur și simplu nu există în codul sursă.
Aici intră în scenă scraping-ul cu Selenium. Ca cineva care a petrecut ani construind instrumente de automatizare și, da, extrăgând mai multe site-uri decât aș vrea să recunosc, îți pot spune că stăpânirea Selenium este o superputere pentru oricine are nevoie de date dinamice, actualizate. În acest tutorial practic de web scraping cu Selenium, te voi ghida prin pașii esențiali — de la configurare la automatizare — și îți voi arăta cum să combini Selenium cu Thunderbit pentru date structurate, gata de export. Fie că ești analist de business, specialist în vânzări sau doar un utilizator curios de Python, vei pleca de aici cu abilități practice și cu câteva motive de zâmbit (pentru că, sincer, depanarea selectorilor XPath îți călește caracterul).
Încearcă AI Web Scraper de la Thunderbit
Ce este Selenium și de ce să-l folosești pentru web scraping?
Hai să începem cu bazele. Selenium este un framework open-source care îți permite să controlezi un browser web real — precum Chrome sau Firefox — prin cod. Gândește-te la el ca la un robot care poate deschide pagini, da clic pe butoane, completa formulare, derula și chiar rula JavaScript, exact ca un utilizator uman. E important, pentru că majoritatea site-urilor moderne nu îți afișează toate datele de la început. În schimb, încarcă conținutul dinamic, adesea după ce interacționezi cu pagina.
Ce este data scraping și cum îl faci în 2026 Get Started Free
De ce contează asta pentru scraping? Instrumentele tradiționale precum BeautifulSoup sau Scrapy sunt excelente pentru HTML static, dar nu pot „vedea” nimic încărcat de JavaScript după încărcarea inițială a paginii. Selenium, în schimb, poate interacționa cu pagina în timp real, ceea ce îl face perfect pentru:
- Extracția listelor de produse care apar doar după ce apeși „Load More”
- Preluarea prețurilor sau recenziilor care se actualizează dinamic
- Navigarea prin formulare de autentificare, ferestre pop-up sau derulare infinită
- Extragerea datelor din dashboarduri, hărți sau alte elemente interactive
Pe scurt, Selenium este instrumentul ideal atunci când trebuie să extragi date care apar abia după ce pagina s-a încărcat complet — sau după o acțiune a utilizatorului.
Pașii cheie pentru web scraping cu Python și Selenium
Scraping-ul cu Selenium se reduce la trei pași esențiali:
| Pas | Ce faci | De ce contează |
|---|---|---|
| 1. Configurarea mediului | Instalezi Selenium, WebDriver și bibliotecile Python | Îți pregătești uneltele și eviți durerile de cap la configurare |
| 2. Localizarea elementelor | Găsești datele dorite folosind ID-uri, clase, XPath etc. | Țintești informația corectă, chiar dacă este ascunsă de JavaScript |
| 3. Extragerea și salvarea datelor | Preiei text, linkuri sau tabele și le salvezi în CSV/Excel | Transformi datele brute de pe web în ceva utilizabil |
Să intrăm în fiecare pas cu exemple practice și cod pe care îl poți copia, ajusta și povesti prietenilor.
Pasul 1: Configurarea mediului Python și Selenium
Mai întâi de toate: trebuie să instalezi Selenium și un driver pentru browser (de exemplu, ChromeDriver pentru Chrome). Vestea bună? Acum e mai simplu ca oricând.
Instalează Selenium
Deschide terminalul și rulează:
pip install selenium
Obține un WebDriver
- Chrome: descarcă ChromeDriver (asigură-te că se potrivește cu versiunea ta de Chrome).
- Firefox: descarcă GeckoDriver.
Sfat util: Cu Selenium 4.6+, poți folosi Selenium Manager pentru a descărca automat driverele, așa că s-ar putea să nu mai fie nevoie nici să te complici cu variabilele PATH (documentație).
Primul tău script Selenium
Iată un „hello world” rapid pentru Selenium:
from selenium import webdriver
driver = webdriver.Chrome() # Sau webdriver.Firefox()
driver.get("https://example.com")
print(driver.title)
driver.quit()
Sfaturi de depanare:
- Dacă primești eroarea „driver not found”, verifică PATH-ul sau folosește Selenium Manager.
- Asigură-te că versiunile browserului și driverului coincid.
- Dacă rulezi pe un server headless (fără interfață grafică), vezi mai jos sfaturile pentru modul headless.
Pasul 2: Localizarea elementelor web pentru extragerea datelor
Acum vine partea interesantă: îi spui lui Selenium ce date vrei. Site-urile sunt construite din elemente — div-uri, span-uri, tabele, ce vrei tu — iar Selenium îți oferă mai multe moduri de a le găsi.
Strategii comune de localizare
By.ID: găsește un element cu un ID unicBy.CLASS_NAME: găsește elemente după clasa CSSBy.XPATH: folosește expresii XPath (foarte flexibil, dar poate fi fragil)By.CSS_SELECTOR: folosește selectori CSS (excelent pentru interogări complexe)
Iată cum le-ai putea folosi:
from selenium.webdriver.common.by import By
# Găsește după ID
price = driver.find_element(By.ID, "price").text
# Găsește după XPath
title = driver.find_element(By.XPATH, "//h1").text
# Găsește toate imaginile produselor cu un selector CSS
images = driver.find_elements(By.CSS_SELECTOR, ".product img")
for img in images:
print(img.get_attribute("src"))
Sfat util: Folosește întotdeauna cel mai simplu și mai stabil locator (ID > clasă > CSS > XPath). Și dacă extragi date de pe o pagină care le încarcă cu întârziere, folosește așteptări explicite:
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")))
Asta împiedică scriptul să crape dacă datele apar cu o secundă mai târziu.
Pasul 3: Extragerea și salvarea datelor
După ce ai găsit elementele, e timpul să preiei datele și să le salvezi undeva util.
Extragerea textului, linkurilor și tabelelor
Să presupunem că extragi un tabel de produse:
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])
Salvarea în CSV cu Pandas
import pandas as pd
df = pd.DataFrame(data, columns=["Nume", "Preț", "Stoc"])
df.to_csv("products.csv", index=False)
Poți salva și în Excel (df.to_excel("products.xlsx")) sau chiar trimite datele în Google Sheets folosind API-ul lor.
Exemplu complet: extragerea titlurilor și prețurilor produselor
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=["Titlu", "Preț"])
df.to_csv("products.csv", index=False)
Selenium vs. BeautifulSoup și Scrapy: ce face Selenium unic?
Să lămurim dezbaterea: când ar trebui să folosești Selenium și când este mai potrivit ceva precum BeautifulSoup sau Scrapy? Iată o comparație rapidă:
| Instrument | Cel mai potrivit pentru | Gestionează JavaScript? | Viteză și consum de resurse |
|---|---|---|---|
| Selenium | Site-uri dinamice/interactive | Da | Mai lent, folosește mai multă memorie |
| BeautifulSoup | Extracție simplă din HTML static | Nu | Foarte rapid, ușor |
| Scrapy | Crawling de volum mare pe site-uri statice | Limitat* | Foarte rapid, asincron, consum redus de RAM |
| Thunderbit | Scraping fără cod, pentru business | Da (AI) | Rapid pentru sarcini mici/medii |
*Scrapy poate gestiona o parte din conținutul dinamic cu pluginuri, dar nu acesta este punctul său forte (ScrapingBee).
Când să folosești Selenium:
- Datele apar doar după clic, derulare sau autentificare
- Trebuie să interacționezi cu ferestre pop-up, derulare infinită sau dashboarduri dinamice
- Scraper-ele statice pur și simplu nu fac față
Când să folosești BeautifulSoup/Scrapy:
- Datele sunt deja în HTML-ul inițial
- Trebuie să extragi mii de pagini rapid
- Vrei un consum minim de resurse
Iar dacă vrei să sari complet peste partea de cod, Thunderbit îți permite să extragi site-uri dinamice cu AI — trebuie doar să apeși „AI Suggest Fields” și să exporți în Sheets, Notion sau Airtable. (Mai multe despre asta mai jos.)
Cum să extragi orice site folosind AI Get Started Free
Automatizarea sarcinilor de web scraping cu Selenium și Python
Hai să fim sinceri: nimeni nu vrea să se trezească la 2 dimineața ca să pornească un script de scraping. Vestea bună este că poți automatiza joburile Selenium folosind instrumentele de programare din Python sau schedulerul sistemului de operare (cum ar fi cron pe Linux/Mac sau Task Scheduler pe Windows).
Folosind biblioteca schedule
import schedule
import time
def job():
# Codul tău de scraping aici
print("Se extrag datele...")
schedule.every().day.at("09:00").do(job)
while True:
schedule.run_pending()
time.sleep(1)
Sau cu Cron (Linux/Mac)
Adaugă asta în crontab pentru a rula la fiecare oră:
0 * * * * python /path/to/your_script.py
Sfaturi pentru automatizare:
- Rulează Selenium în modul headless (vezi mai jos) ca să eviți ferestrele grafice.
- Înregistrează erorile și trimite-ți alerte dacă ceva merge prost.
- Închide întotdeauna browserul cu
driver.quit()pentru a elibera resursele.
Creșterea eficienței: sfaturi pentru un scraping Selenium mai rapid și mai fiabil
Selenium este puternic, dar poate fi lent și consumator de resurse dacă nu ești atent. Iată cum să-l accelerezi și să eviți durerile de cap obișnuite:
1. Rulează în modul headless
Nu e nevoie să vezi cum Chrome se deschide și se închide de o sută de ori. Modul headless rulează browserul în fundal:
from selenium.webdriver.chrome.options import Options
opts = Options()
opts.headless = True
driver = webdriver.Chrome(options=opts)
2. Blochează imaginile și alt conținut inutil
De ce să încarci imagini dacă extragi doar text? Blochează-le ca să accelerezi încărcarea paginii:
prefs = {"profile.managed_default_content_settings.images": 2}
opts.add_experimental_option("prefs", prefs)
3. Folosește locatori eficienți
- Preferă ID-urile sau selectori CSS simpli în locul XPath-urilor complicate.
- Evită
time.sleep()— folosește în schimb așteptări explicite (WebDriverWait).
4. Randomizează întârzierile
Adaugă pauze aleatorii ca să imiti navigarea umană și să eviți blocarea:
import random, time
time.sleep(random.uniform(1, 3))
5. Rotește user agent-urile și IP-urile (dacă e nevoie)
Dacă extragi mult, rotește șirul user agent și ia în calcul folosirea proxy-urilor pentru a evita măsurile simple anti-bot.
6. Gestionează sesiunile și erorile
- Folosește blocuri try/except ca să gestionezi elegant elementele lipsă.
- Înregistrează erorile și fă capturi de ecran pentru depanare.
Pentru mai multe sfaturi de optimizare, consultă ghidul BrowserStack.
Avansat: combinarea Selenium cu Thunderbit pentru export structurat de date
Aici lucrurile devin cu adevărat interesante — mai ales dacă vrei să economisești timp la curățarea și exportul datelor.
După ce ai extras date brute cu Selenium, poți folosi Thunderbit pentru a:
- Detecta automat câmpurile: AI-ul Thunderbit poate citi paginile sau CSV-urile extrase și poate sugera nume de coloane („AI Suggest Fields”).
- Extragerea subpaginilor: dacă ai o listă de URL-uri (de exemplu, pagini de produs), Thunderbit poate vizita fiecare pagină și îți poate îmbogăți tabelul cu mai multe detalii — fără cod suplimentar.
- Îmbogățirea datelor: traduce, categorizează sau analizează datele din mers.
- Export oriunde: export cu un singur clic în Google Sheets, Airtable, Notion, CSV sau Excel.
Exemplu de flux de lucru:
- Folosești Selenium pentru a extrage o listă de URL-uri și titluri de produse.
- Expotezi datele în CSV.
- Deschizi Thunderbit, imporți CSV-ul și lași AI-ul să sugereze câmpurile.
- Folosești extragerea subpaginilor din Thunderbit pentru a prelua mai multe detalii (cum ar fi imagini sau specificații) pentru fiecare URL de produs.
- Expotezi setul final de date structurate în Sheets sau Notion.
Această combinație economisește ore de curățare manuală și îți permite să te concentrezi pe analiză, nu pe încurcături cu date murdare. Pentru mai multe despre acest flux de lucru, vezi ghidul Thunderbit pentru Selenium.
Exportă datele Selenium cu AI Thunderbit
Cele mai bune practici și depanare pentru web scraping cu Selenium
Web scraping-ul e puțin ca pescuitul: uneori prinzi ceva mare, alteori te încurci în buruieni. Iată cum să-ți păstrezi scripturile fiabile — și etice:
Cele mai bune practici
- Respectă robots.txt și termenii site-ului: verifică întotdeauna dacă scraping-ul este permis.
- Limitează ritmul cererilor: nu supraîncărca serverele — adaugă întârzieri și urmărește erorile HTTP 429.
- Folosește API-uri când există: dacă datele sunt publice prin API, folosește-l — e mai sigur și mai fiabil.
- Extrage doar date publice: evită informațiile personale sau sensibile și fii atent la legislația privind confidențialitatea.
- Gestionează pop-up-urile și CAPTCHA-urile: poți folosi Selenium pentru a închide ferestrele pop-up, dar fii atent cu CAPTCHA-urile — sunt greu de automatizat.
- Randomizează user agent-urile și întârzierile: ajută la evitarea detectării și blocării.
Erori comune și soluții
| Eroare | Ce înseamnă | Cum o repari |
|---|---|---|
NoSuchElementException | Nu găsește elementul | Verifică din nou locatorul; folosește așteptări |
| Erori de timeout | Pagina sau elementul a durat prea mult | Mărește timpul de așteptare; verifică viteza rețelei |
| Nepotrivire între driver și browser | Selenium nu poate lansa browserul | Actualizează versiunile driverului și browserului |
| Prăbușiri de sesiune | Browserul s-a închis pe neașteptate | Folosește modul headless; gestionează resursele |
Pentru mai multe sfaturi de depanare, vezi tutorialul Thunderbit pentru Selenium.
Concluzie și idei-cheie
Scraping-ul web dinamic nu mai este doar pentru dezvoltatorii hardcore. Cu Python și Selenium, poți automatiza orice browser, poți interacționa cu cele mai dificile site-uri pline de JavaScript și poți extrage datele de care are nevoie afacerea ta — fie pentru vânzări, cercetare sau doar din curiozitate. Ține minte:
- Selenium este instrumentul ideal pentru site-uri dinamice, interactive.
- Trei pași esențiali: configurare, localizare, extragere și salvare.
- Automatizează scripturile pentru actualizări regulate ale datelor.
- Optimizează pentru viteză și fiabilitate cu modul headless, așteptări inteligente și locatori eficienți.
- Combină Selenium cu Thunderbit pentru structurare și export ușor al datelor — mai ales dacă vrei să scapi de durerile de cap din Excel.
Ești gata să încerci? Începe cu exemplele de cod de mai sus, iar când ești pregătit să duci scraping-ul la nivelul următor, încearcă Thunderbit pentru curățare și export instant, cu AI. Iar dacă vrei mai mult, aruncă un ochi pe blogul Thunderbit pentru analize aprofundate, tutoriale și noutăți despre automatizarea web.
Spor la scraping — și fie ca selectorii tăi să găsească mereu ce cauți.
Încearcă gratuit AI Web Scraper de la Thunderbit Get Started Free
Întrebări frecvente
1. De ce ar trebui să folosesc Selenium pentru web scraping în loc de BeautifulSoup sau Scrapy?
Selenium este ideal pentru extragerea datelor de pe site-uri dinamice, unde conținutul se încarcă după acțiuni ale utilizatorului sau după rularea JavaScript-ului. BeautifulSoup și Scrapy sunt mai rapide pentru HTML static, dar nu pot interacționa cu elemente dinamice și nici simula clicuri sau derulare.
2. Cum pot face scraper-ul meu Selenium să ruleze mai repede?
Folosește modul headless, blochează imaginile și resursele inutile, utilizează locatori eficienți și adaugă întârzieri aleatorii ca să mimezi navigarea umană. Vezi ghidul BrowserStack pentru mai multe sfaturi.
3. Pot programa sarcini de scraping Selenium să ruleze automat?
Da! Folosește biblioteca schedule din Python sau schedulerul sistemului tău (cron ori Task Scheduler) pentru a rula scripturile la intervale stabilite. Automatizarea ajută la menținerea datelor actualizate.
4. Care este cea mai bună metodă de a exporta datele extrase cu Selenium?
Folosește Pandas pentru a salva datele în CSV sau Excel. Pentru exporturi mai avansate (Google Sheets, Notion, Airtable), importă datele în Thunderbit și folosește funcțiile de export cu un singur clic.
5. Cum pot gestiona pop-up-urile și CAPTCHA-urile în Selenium?
Poți închide pop-up-urile localizând și apăsând pe butoanele lor de închidere. CAPTCHA-urile sunt mult mai dificile — dacă întâlnești așa ceva, ia în calcul o soluție manuală sau un serviciu de rezolvare CAPTCHA și respectă întotdeauna termenii site-ului.
Vrei să vezi mai multe tutoriale de scraping, sfaturi de automatizare AI sau cele mai noi instrumente pentru date de business? Abonează-te la blogul Thunderbit sau vizitează canalul nostru de YouTube pentru demonstrații practice.
Află mai multe


