Python Selenium - jak načíst všechna data z tabulky?

Co nejvíce stručné řešení pro vývojáře a linux administrátory

Na superuser.cz nenaleznete žádný zbytečný obsah, vždy se jde přímo k věci, denně se zde objevují nové problémy a jejich řešení...

Začít používat

Python Selenium - jak načíst všechna…

15.09.2019 napsal Caulder

Vyřešeno Python Selenium - How to iterate or read all rows (cells) data of table
Dobrý den, jaká je nejjednodušší varianta pro načtení všech dat z webové tabulky (table)? Potřebuji získat veškerý obsah z každé řádky (tr) a každého sloupce (td) pomocí Python Selenium. Tipuji to na nějaký cyklus a hledání pole elementů pomocí HTML tagu (find_elements_by_tag_name). Děkuji
Nejlépe hodnocení uživatelé
Hanz

Počet UP: 4476

React: 209

Rusty

Počet UP: 2088

React: 94

OL3G

Počet UP: 1451

React: 60

Strosmajer

Počet UP: 403

React: 20

Oxytocin

Počet UP: 251

React: 18

SYSTEM

Počet UP: 369

React: 18

RE: Python Selenium - jak načíst…

02.10.2019 odpověděl Hanz

Zkontrolováno

Dobrý den,

základní konstrukce pro stažení dat z tabulky v HTML stránce pomocí Python Selenium by mohla vypadat takto:


table = driver.find_element_by_tag_name('table')
rows = table.find_elements_by_tag_name('tr')
for row in rows:
  cols = row.find_elements_by_tag_name('td')
  for col in cols:
    print(col.text)
Zkráceně: Nalezne element 'table', načte všechny elementy 'tr' a ty projdou cyklem. V cyklu je další cyklus na přečtení všech sloupců 'td'.



Pro zajímavost další příklady pro sběr dat z tabulek v HTML stránce pomocí Python Selenium:

Načíst všechny tabulky ve stránce


def getTables:
  tables = driver.find_elements_by_tag_name('table')
  count = len(tables)
  print('Pocet tabulek: ', count)
  for table in tables:
    print(table.text)


Rozdíl mezi text / innerHTML


# jen čistá data mezi HTML tagy (bez HTML)
print(table.text))
# kompletní "raw" data (včetně HTML tagů)
print(table.get_attribute('innerHTML'))
Tento web používá k poskytování služeb, personalizaci reklam a analýze návštěvnosti soubory cookie. Používáním tohoto webu s tím souhlasíte. Další informace