informatica:programacion:python:modulos:beautiful_soup
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| informatica:programacion:python:modulos:beautiful_soup [2024/06/14 16:26] – [Ejemplo 2: leyendo HTML de una web] tempwin | informatica:programacion:python:modulos:beautiful_soup [2024/06/14 17:24] (actual) – [Recursos] tempwin | ||
|---|---|---|---|
| Línea 181: | Línea 181: | ||
| # Buscar un signo de dólar y lo que venga después | # Buscar un signo de dólar y lo que venga después | ||
| tags = doc.find_all(text=re.compile(" | tags = doc.find_all(text=re.compile(" | ||
| + | </ | ||
| + | |||
| + | Limitar los resultados de búsqueda: | ||
| + | |||
| + | <code python> | ||
| + | import re | ||
| + | |||
| + | # Buscar un signo de dólar y lo que venga después | ||
| + | tags = doc.find_all(text=re.compile(" | ||
| + | </ | ||
| + | |||
| + | Búsqueda por proximidad en la estructura de árbol, por ejemplo, nodos hermanos, padre y descendientes: | ||
| + | |||
| + | <code python> | ||
| + | from bs4 import BeautifulSoup | ||
| + | import requests | ||
| + | |||
| + | url = " | ||
| + | result = requests.get(url).text | ||
| + | doc = BeautifulSoup(result, | ||
| + | |||
| + | tbody = doc.tbody | ||
| + | trs = tbody.contents | ||
| + | |||
| + | print(trs[1].next_sibling) | ||
| + | |||
| + | # Nodo padre: | ||
| + | print(trs[0].parent) | ||
| + | |||
| + | # Descendientes | ||
| + | print(trs[0].descendants) | ||
| + | # | ||
| + | # | ||
| + | </ | ||
| + | |||
| + | Recorrer una tabla buscando precios: | ||
| + | |||
| + | <code python> | ||
| + | from bs4 import BeautifulSoup | ||
| + | import requests | ||
| + | |||
| + | url = " | ||
| + | result = requests.get(url).text | ||
| + | doc = BeautifulSoup(result, | ||
| + | |||
| + | tbody = doc.tbody | ||
| + | trs = tbody.contents | ||
| + | |||
| + | prices = {} | ||
| + | |||
| + | for tr in trs[:10]: | ||
| + | for td in tr.contents: | ||
| + | name, price = tr.contents[2: | ||
| + | fixed_name = name.p.string | ||
| + | fixed_price = price.a.string | ||
| + | | ||
| + | prices[fixed_name] = fixed_price | ||
| + | | ||
| + | print(prices) | ||
| </ | </ | ||
| ===== Recursos ===== | ===== Recursos ===== | ||
| * [[https:// | * [[https:// | ||
| + | * [[https:// | ||
informatica/programacion/python/modulos/beautiful_soup.1718375173.txt.gz · Última modificación: por tempwin
