Web už dávno není, co býval. Dnes je skoro každý web, který otevřete, postavený na JavaScriptu a obsah se načítá postupně — zkuste si představit nekonečné scrollování, vyskakovací okna a dashboardy, které svoje tajemství odhalí až po jednom nebo dvou kliknutích. Ve skutečnosti už ohromujících 98,7 % všech webů používá JavaScript, což znamená, že starší nástroje na scraping, které umí číst jen statické HTML, přicházejí o spoustu cenných dat. Pokud jste se někdy pokoušeli vytáhnout ceny produktů z moderního e‑shopu nebo nabídky nemovitostí z interaktivní mapy, znáte tu frustraci: data, která chcete, prostě ve zdrojovém kódu nejsou.
A právě tady přichází ke slovu scraping se Selenium. Jako někdo, kdo strávil roky stavbou automatizačních nástrojů (a ano, i scrapingem víc webů, než bych asi měl), vám můžu říct: zvládnout Selenium je superschopnost pro každého, kdo potřebuje aktuální dynamická data. V tomhle praktickém tutoriálu pro scraping webu pomocí Selenium vás provedu klíčovými kroky — od nastavení až po automatizaci — a ukážu vám, jak Selenium zkombinovat s Thunderbit pro strukturovaná data připravená k exportu. Ať už jste business analytik, obchodník, nebo prostě jen zvědavý uživatel Pythonu, odnesete si praktické dovednosti i pár úsměvných momentů (protože upřímně, ladění XPath selektorů člověka zocelí).
Vyzkoušet Thunderbit AI Web Scraper
Co je Selenium a proč ho používat pro scraping webu?
Začněme od základů. Selenium je open-source framework, který vám umožní ovládat skutečný webový prohlížeč — třeba Chrome nebo Firefox — pomocí kódu. Představte si ho jako robota, který umí otevírat stránky, klikat na tlačítka, vyplňovat formuláře, scrollovat a dokonce spouštět JavaScript, stejně jako člověk. To je zásadní, protože většina moderních webů vám všechna data nezobrazí hned. Místo toho načítají obsah dynamicky, často až po interakci se stránkou.
Co je scraping dat a jak na něj v roce 2026 Get Started Free
Proč je to pro scraping důležité? Tradiční nástroje jako BeautifulSoup nebo Scrapy jsou skvělé pro statické HTML, ale neumí „vidět“ nic, co se načte přes JavaScript po prvním načtení stránky. Selenium naopak umí se stránkou pracovat v reálném čase, takže je ideální pro:
- scrapování seznamů produktů, které se zobrazí až po kliknutí na „Načíst více“
- získávání cen nebo recenzí, které se dynamicky aktualizují
- procházení přihlašovacích formulářů, vyskakovacích oken nebo nekonečného scrollování
- extrakci dat z dashboardů, map nebo jiných interaktivních prvků
Zkrátka Selenium je váš hlavní nástroj, když potřebujete získat data, která se objeví až po načtení stránky — nebo po akci uživatele.
Klíčové kroky pro scraping webu v Pythonu se Selenium
Scraping se Selenium stojí na třech základních krocích:
| Krok | Co uděláte | Proč je to důležité |
|---|---|---|
| 1. Nastavení prostředí | Nainstalujete Selenium, WebDriver a knihovny Pythonu | Připravíte si nástroje a vyhnete se problémům při nastavení |
| 2. Vyhledání prvků | Najdete data pomocí ID, tříd, XPath apod. | Zacílení na správné informace, i když jsou skryté JavaScriptem |
| 3. Extrakce a uložení dat | Vytáhnete text, odkazy nebo tabulky a uložíte je do CSV/Excelu | Proměníte surová webová data v něco, co můžete použít |
Pojďme si každý krok projít na praktických příkladech a kódu, který můžete zkopírovat, upravit a pak se s ním pochlubit kamarádům.
Krok 1: Nastavení Python prostředí pro Selenium
Nejdřív potřebujete nainstalovat Selenium a ovladač prohlížeče (například ChromeDriver pro Chrome). Dobrá zpráva? Je to jednodušší než dřív.
Instalace Selenium
Otevřete terminál a spusťte:
pip install selenium
Stažení WebDriveru
- Chrome: Stáhněte ChromeDriver (ujistěte se, že odpovídá vaší verzi Chromu).
- Firefox: Stáhněte GeckoDriver.
Tip navíc: Od Selenium 4.6 můžete použít Selenium Manager, který ovladače stáhne automaticky, takže už možná nebudete muset vůbec řešit proměnné PATH (dokumentace).
Váš první Selenium skript
Tady je rychlé „hello world“ pro Selenium:
from selenium import webdriver
driver = webdriver.Chrome() # Nebo webdriver.Firefox()
driver.get("https://example.com")
print(driver.title)
driver.quit()
Tipy pro řešení potíží:
- Pokud se zobrazí chyba „driver not found“, zkontrolujte PATH nebo použijte Selenium Manager.
- Ujistěte se, že verze prohlížeče a ovladače odpovídají.
- Pokud běžíte na serveru bez grafického rozhraní (headless), podívejte se níže na tipy pro headless režim.
Krok 2: Vyhledávání webových prvků pro extrakci dat
Teď přichází zábavná část: říct Selenium, která data chcete. Weby jsou tvořené prvky — divy, spany, tabulkami a dalším obsahem — a Selenium vám nabízí několik způsobů, jak je najít.
Běžné strategie vyhledávání prvků
By.ID: Najde prvek s jedinečným IDBy.CLASS_NAME: Najde prvky podle CSS třídyBy.XPATH: Použije XPath výrazy (velmi flexibilní, ale může být křehké)By.CSS_SELECTOR: Použije CSS selektory (skvělé pro složitější dotazy)
Takto je můžete použít:
from selenium.webdriver.common.by import By
# Najít podle ID
price = driver.find_element(By.ID, "price").text
# Najít podle XPath
title = driver.find_element(By.XPATH, "//h1").text
# Najít všechny obrázky produktů pomocí CSS selektoru
images = driver.find_elements(By.CSS_SELECTOR, ".product img")
for img in images:
print(img.get_attribute("src"))
Tip navíc: Vždy používejte co nejjednodušší a nejstabilnější selektor (ID > class > CSS > XPath). A pokud scrapujete stránku, která načítá data se zpožděním, použijte explicitní čekání:
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")))
Díky tomu váš skript nespadne jen proto, že se data zobrazí až o chvíli později.
Krok 3: Extrakce a uložení dat
Jakmile najdete potřebné prvky, je čas data vytáhnout a uložit někam, kde vám poslouží.
Extrakce textu, odkazů a tabulek
Představte si, že scrapujete tabulku produktů:
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])
Uložení do CSV pomocí Pandas
import pandas as pd
df = pd.DataFrame(data, columns=["Name", "Price", "Stock"])
df.to_csv("products.csv", index=False)
Můžete také uložit do Excelu (df.to_excel("products.xlsx")) nebo data poslat do Google Sheets přes jejich API.
Kompletní příklad: scrapování názvů a cen produktů
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 vs. BeautifulSoup a Scrapy: čím je Selenium výjimečné?
Pojďme uzavřít debatu: kdy použít Selenium a kdy je lepší třeba BeautifulSoup nebo Scrapy? Tady je rychlé srovnání:
| Nástroj | Nejlepší pro | Umí JavaScript? | Rychlost a spotřeba zdrojů |
|---|---|---|---|
| Selenium | Dynamické/interaktivní weby | Ano | Pomalejší, spotřebuje víc paměti |
| BeautifulSoup | Jednoduchý scraping statického HTML | Ne | Velmi rychlý, lehký |
| Scrapy | Crawler ve velkém objemu na statických webech | Omezeně* | Super rychlý, asynchronní, nízká RAM |
| Thunderbit | No-code scraping pro byznys | Ano (AI) | Rychlý pro malé a střední úlohy |
*Scrapy si s některým dynamickým obsahem poradí pomocí pluginů, ale není to jeho silná stránka (ScrapingBee).
Kdy použít Selenium:
- Data se zobrazí až po kliknutí, scrollování nebo přihlášení
- Potřebujete pracovat s vyskakovacími okny, nekonečným scrollováním nebo dynamickými dashboardy
- Statické scrapery prostě nestačí
Kdy použít BeautifulSoup/Scrapy:
- Data jsou už v úvodním HTML
- Potřebujete rychle projet tisíce stránek
- Chcete minimální nároky na zdroje
A pokud chcete přeskočit programování úplně, Thunderbit vám umožní scrapovat dynamické weby pomocí AI — stačí kliknout na „AI Suggest Fields“ a exportovat do Sheets, Notion nebo Airtable. (Více o tom níže.)
Jak scrapovat jakýkoli web pomocí AI Get Started Free
Automatizace scrapingových úloh se Selenium a Pythonem
Buďme upřímní: nikdo nechce vstávat ve 2 ráno, aby ručně spustil scrapingový skript. Dobrá zpráva je, že Selenium úlohy můžete automatizovat pomocí plánovacích nástrojů v Pythonu nebo plánovače v operačním systému (například cron na Linuxu/Macu nebo Plánovač úloh ve Windows).
Použití knihovny schedule
import schedule
import time
def job():
# Sem patří váš scrapingový kód
print("Scrapuji...")
schedule.every().day.at("09:00").do(job)
while True:
schedule.run_pending()
time.sleep(1)
Nebo s Cronem (Linux/Mac)
Přidejte do crontabu toto, aby se skript spouštěl každou hodinu:
0 * * * * python /path/to/your_script.py
Tipy pro automatizaci:
- Spouštějte Selenium v headless režimu (viz níže), abyste se vyhnuli grafickým vyskakovacím oknům.
- Logujte chyby a posílejte si upozornění, pokud se něco pokazí.
- Vždy zavírejte prohlížeč pomocí
driver.quit(), aby se uvolnily zdroje.
Zvyšování efektivity: tipy pro rychlejší a spolehlivější scraping se Selenium
Selenium je mocné, ale může být pomalé a náročné na zdroje, pokud si nedáte pozor. Tady je, jak zrychlit práci a vyhnout se běžným potížím:
1. Spouštějte v headless režimu
Není potřeba sledovat, jak se Chrome stokrát otevírá a zavírá. Headless režim běží na pozadí:
from selenium.webdriver.chrome.options import Options
opts = Options()
opts.headless = True
driver = webdriver.Chrome(options=opts)
2. Blokujte obrázky a další zbytečný obsah
Proč načítat obrázky, když scrapujete jen text? Zablokujte je, aby se stránka načítala rychleji:
prefs = {"profile.managed_default_content_settings.images": 2}
opts.add_experimental_option("prefs", prefs)
3. Používejte efektivní selektory
- Dávejte přednost ID nebo jednoduchým CSS selektorům před složitými XPath.
- Vyhněte se
time.sleep()— místo toho používejte explicitní čekání (WebDriverWait).
4. Náhodně prodlužujte prodlevy
Přidávejte náhodné pauzy, aby chování připomínalo člověka a snížilo riziko blokace:
import random, time
time.sleep(random.uniform(1, 3))
5. Střídejte user agenty a IP adresy (když je to potřeba)
Pokud scrapujete hodně, střídejte user agent string a zvažte proxy, abyste obešli jednoduché anti-bot mechanismy.
6. Správa relací a chyb
- Používejte bloky try/except, aby skript elegantně zvládl chybějící prvky.
- Logujte chyby a pořizujte screenshoty pro ladění.
Další tipy na optimalizaci najdete v průvodci BrowserStacku.
Pokročilé: Kombinace Selenium a Thunderbit pro strukturovaný export dat
Tady se dostáváme k opravdu zajímavé části — zvlášť pokud chcete ušetřit čas při čištění dat a exportu.
Jakmile surová data nasbíráte pomocí Selenium, můžete využít Thunderbit k tomu, aby:
- Automaticky rozpoznal pole: AI od Thunderbit může přečíst vaše scrapované stránky nebo CSV soubory a navrhnout názvy sloupců („AI Suggest Fields“).
- Scraping podstránek: Pokud máte seznam URL (například produktové stránky), Thunderbit může každou z nich navštívit a obohatit tabulku o další detaily — bez dalšího kódu.
- Obohacení dat: Překládání, kategorizace nebo analýza dat za chodu.
- Export kamkoli: Jedním kliknutím export do Google Sheets, Airtable, Notion, CSV nebo Excelu.
Příklad workflow:
- Pomocí Selenium nasbírejte seznam URL a názvů produktů.
- Exportujte data do CSV.
- Otevřete Thunderbit, importujte CSV a nechte AI navrhnout pole.
- Pomocí scrapování podstránek v Thunderbitu vytáhněte z každé produktové URL další detaily (například obrázky nebo specifikace).
- Exportujte finální strukturovaný dataset do Sheets nebo Notion.
Tahle kombinace vám ušetří hodiny ručního čištění a umožní soustředit se na analýzu, ne na zápasení s neuspořádanými daty. Více o tomhle workflow najdete v průvodci Selenium od Thunderbit.
Exportovat data ze Selenium pomocí Thunderbit AI
Osvědčené postupy a řešení problémů při scrapování webu se Selenium
Web scraping je trochu jako rybaření: někdy ulovíte velkou rybu, jindy se zamotáte do plevele. Takhle udržíte své skripty spolehlivé — a zároveň etické:
Osvědčené postupy
- Respektujte robots.txt a podmínky webu: Vždy zkontrolujte, zda je scraping povolen.
- Omezte rychlost požadavků: Nepřetěžujte servery — přidávejte prodlevy a sledujte chyby HTTP 429.
- Používejte API, pokud jsou k dispozici: Pokud jsou data veřejně dostupná přes API, použijte je — je to bezpečnější a spolehlivější.
- Scrapujte jen veřejná data: Vyhněte se osobním nebo citlivým informacím a myslete na zákony o ochraně soukromí.
- Zvládejte pop-upy a CAPTCHy: Selenium můžete použít k zavření vyskakovacích oken, ale u CAPTCHA buďte opatrní — automatizace je obtížná.
- Náhodně střídejte user agenty a prodlevy: Pomáhá to omezit detekci a blokování.
Časté chyby a opravy
| Chyba | Co znamená | Jak to opravit |
|---|---|---|
NoSuchElementException | Nelze najít prvek | Zkontrolujte selektor; použijte čekání |
| Chyby timeoutu | Stránka nebo prvek trvaly příliš dlouho | Zvyšte dobu čekání; zkontrolujte rychlost sítě |
| Nesoulad driveru a prohlížeče | Selenium nemůže spustit prohlížeč | Aktualizujte verze driveru i prohlížeče |
| Pád relace | Prohlížeč se neočekávaně zavřel | Použijte headless režim; spravujte zdroje |
Další tipy pro řešení problémů najdete v tutoriálu Thunderbit pro Selenium.
Závěr a hlavní poznatky
Dynamický web scraping už dávno není jen pro ostřílené vývojáře. S Pythonem a Selenium můžete automatizovat jakýkoli prohlížeč, pracovat s těmi nejtěžšími weby plnými JavaScriptu a vytáhnout data, která vaše firma potřebuje — ať už pro obchod, výzkum, nebo prostě ze zvědavosti. Zapamatujte si:
- Selenium je nástroj první volby pro dynamické a interaktivní weby.
- Tři klíčové kroky: nastavení, vyhledání, extrakce a uložení.
- Automatizujte své skripty pro pravidelné aktualizace dat.
- Optimalizujte rychlost a spolehlivost pomocí headless režimu, chytrého čekání a efektivních selektorů.
- Kombinujte Selenium s Thunderbit pro snadné strukturování a export dat — hlavně pokud se chcete vyhnout bolestem hlavy v tabulkách.
Chcete to vyzkoušet sami? Začněte s ukázkovými kódy výše a až budete připraveni posunout scraping na další úroveň, vyzkoušejte Thunderbit pro okamžité čištění a export dat pomocí AI. A pokud máte chuť na víc, podívejte se na blog Thunderbit, kde najdete hlubší návody, tutoriály a novinky z oblasti webové automatizace.
Hodně štěstí při scrapování — a ať vaše selektory vždy najdou přesně to, co hledáte.
Vyzkoušejte Thunderbit AI Web Scraper zdarma Get Started Free
Často kladené otázky
1. Proč bych měl pro scraping webu používat Selenium místo BeautifulSoup nebo Scrapy?
Selenium je ideální pro scraping dynamických webů, kde se obsah načítá až po akci uživatele nebo po spuštění JavaScriptu. BeautifulSoup a Scrapy jsou rychlejší pro statické HTML, ale neumí pracovat s dynamickými prvky ani simulovat klikání a scrollování.
2. Jak můžu svůj Selenium scraper zrychlit?
Použijte headless režim, blokujte obrázky a zbytečné zdroje, používejte efektivní selektory a přidávejte náhodné prodlevy, aby chování připomínalo člověka. Další tipy najdete v průvodci BrowserStacku.
3. Můžu naplánovat Selenium scraping tak, aby běžel automaticky?
Ano! Použijte knihovnu Pythonu schedule nebo plánovač v operačním systému (cron nebo Plánovač úloh) a spusťte skripty v určených intervalech. Automatizace pomáhá udržet data aktuální.
4. Jaký je nejlepší způsob exportu dat získaných pomocí Selenium?
Pro uložení do CSV nebo Excelu použijte Pandas. Pro pokročilejší exporty (Google Sheets, Notion, Airtable) importujte data do Thunderbit a využijte export na jedno kliknutí.
5. Jak mohu v Selenium řešit pop-upy a CAPTCHA?
Pop-upy zavřete tak, že najdete a kliknete na jejich zavírací tlačítka. CAPTCHA jsou mnohem těžší — pokud na ně narazíte, zvažte ruční obejití nebo službu pro řešení CAPTCHA a vždy dodržujte podmínky používání webu.
Chcete víc tutoriálů o scrapování, tipů na AI automatizaci nebo novinky o nástrojích pro byznysová data? Přihlaste se k odběru blogu Thunderbit nebo se podívejte na náš YouTube kanál pro praktické ukázky.
Zjistit více


