¿Fallo en el web scraping? ¡Probablemente sea por este problema! Todo sobre la solución de iframes

Cuando haya elementos que no se puedan rastrear: explore cómo acceder a los iframes y conozca sus ventajas y desventajas. También examine cómo acceder al contenido del iframe utilizando Selenium y Watir.

5
¿Fallo en el web scraping? ¡Probablemente sea por este problema! Todo sobre la solución de iframes

Cuando un elemento no se puede rastrear: acceder a un iframe

Al crear un rastreador web, en algún momento nos encontraremos con un elemento comúnmente buscado, que es el iframe. Hoy exploraremos el concepto de iframe, sus ventajas y desventajas, y cómo acceder al contenido de un iframe utilizando Selenium y Watir.

Concepto de iframe

iframe es la abreviatura de "Inline Frame" y es un elemento HTML utilizado para incrustar una página web dentro de otra página web. Es decir, proporciona la capacidad de insertar otra página web dentro de un pequeño marco en una página web, permitiendo la integración y la interacción de contenido entre páginas web para diversos propósitos.

Casos de uso de iframe

1) Inserción de contenido de otros sitios web en mi sitio web

  • Los iframes se utilizan en sitios web para insertar contenido como videos de YouTube, presentaciones de SlideShare, mapas de Google o contenido publicitario, entre otros. También se puede utilizar un iframe para insertar un PDF que no requiera descarga por parte del usuario.

2) Separación de áreas dentro de una página

  • Los iframes se pueden utilizar para dividir áreas como un menú en el lado izquierdo, contenido principal en el lado derecho, o para separar la sección de publicidad en la parte inferior de una página.

3) Carga de contenido dinámico

  • Se puede mostrar contenido dinámico o aplicaciones web cargadas dinámicamente dentro de una página actual a través de un iframe, lo que permite la interacción entre páginas web.

Ventajas y desventajas de iframe

1) Ventajas

Útil para incrustar fácilmente contenido externo

  • Al utilizar iframes, es fácil incrustar el contenido de otros sitios web en la página actual, lo que resulta útil para integrar y mostrar contenido de otros servicios.

  • Se puede incrustar un mapa fácilmente con el siguiente código. (Fuente: mdn web docs)

<iframe
  id="inlineFrameExample"
  title="Inline Frame Example"
  width="300"
  height="200"
  src="https://www.openstreetmap.org/export/embed.html?bbox=-0.004017949104309083%2C51.47612752641776%2C0.00030577182769775396%2C51.478569861898606&layer=mapnik">
</iframe>

Útil al reutilizar el mismo contenido varias veces

  • Cuando se necesita utilizar el mismo contenido en varias páginas, el uso de iframes puede evitar la duplicación del trabajo.

No afecta la página actual

  • El contenido dentro de un iframe funciona de forma independiente de la página web externa, por lo que los cambios en el contenido externo no afectan a la página actual.

2) Desventajas

Puede ser vulnerable desde el punto de vista de la seguridad

  • Al utilizar iframes, el contenido externo puede ejecutarse en el mismo dominio y bajo las mismas políticas de seguridad que la página interna, lo que puede provocar riesgos de seguridad como XSS (Cross Site Scripting).

Puede tener problemas de accesibilidad

  • El contenido dentro de un iframe está separado del documento original, lo que puede causar problemas de accesibilidad para los usuarios que utilizan tecnologías de asistencia como lectores de pantalla.

Puede afectar negativamente al SEO

  • Anteriormente se decía que los motores de búsqueda no podían rastrear el contenido de los iframes, lo que implicaba que los iframes no eran beneficiosos para el SEO. Sin embargo, en la actualidad, es difícil afirmar que los iframes afectan directamente al SEO.

  • Aunque los motores de búsqueda pueden detectar los iframes y reconocerlos como contenido de otros sitios web, los iframes no suelen tener un impacto significativo en el ranking de los motores de búsqueda.

  • Sin embargo, para las páginas principales que desean aparecer en los resultados de búsqueda, es recomendable evitar el uso de iframes y optar por contenido único y útil para mejorar el SEO.

Puede ser difícil de ajustar el tamaño

  • Debido a que el tamaño de un iframe se ajusta según el contenido original, puede resultar difícil en un diseño de diseño receptivo.

Puede afectar la experiencia del usuario

  • La carga del contenido dentro de un iframe puede hacer que el contenido de la página se detenga o se retrase, lo que puede afectar la experiencia del usuario.

Cómo obtener información de un iframe en Selenium

En Selenium, se puede acceder a un iframe siguiendo estos pasos:

1) Acceder a la página web

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome() # 웹 드라이버 선택 (예: Chrome)
driver.get("URL_OF_YOUR_PAGE") # 접근할 웹 페이지의 URL 입력

2) Identificar el elemento iframe

Se puede encontrar el iframe utilizando el método find_element. Se pueden utilizar el id, nombre, índice, entre otros, del iframe.

iframe_element = driver.find_element(By.ID, "iframe_id") # iframe의 id를 사용하여 찾는 예시

3) Cambiar al interior del iframe

Se puede cambiar al contexto dentro del iframe utilizando el método switch_to.frame().

driver.switch_to.frame(iframe_element) # iframe 내부로 전환

4) Realizar las operaciones necesarias dentro del iframe

driver.find_element(By.CLASS_NAME, "element_class") # iframe 안의 엘리먼트의 class로 찾는 예시

5) Volver al contexto original después de completar las operaciones

driver.switch_to.default_content() # 원래의 컨텍스트로 복귀

Cómo obtener información de un iframe en Watir

En Watir, se puede acceder a un iframe siguiendo estos pasos:

1) Acceder a la página web

require 'watir'

browser = Watir::Browser.new :chrome # 브라우저 선택 (예: Chrome)
browser.goto 'URL_OF_YOUR_PAGE' # 접근할 웹 페이지의 URL 입력

2) Identificar el elemento iframe

iframe_element = browser.iframe(id: 'iframe_id') # iframe의 id를 사용하여 찾는 예시

3) Realizar las operaciones necesarias dentro del iframe

iframe.element(xpath: "//button[@class='CLASS_NAME']") # iframe 안의 엘리먼트를 class로 찾는 예시

Conclusión

Cuando se encuentra un elemento que no se puede rastrear a pesar de que existe un xpath claro, en la mayoría de los casos, ese elemento puede estar dentro de un iframe. Por lo tanto, al rastrear, a menudo es necesario acceder a los elementos dentro de un iframe de manera diferente.

Hoy exploramos el concepto, ventajas y desventajas de los iframes, así como cómo acceder a ellos al crear un rastreador web.

Las técnicas mencionadas anteriormente mejorarán las habilidades de rastreo web y serán de gran ayuda para recopilar una amplia variedad de datos.

Recolecta datos, automatiza ahora

Comienza en 5 minutos sin necesidad de codificación · Experiencia en rastreo web de más de 5,000 sitios web

Comienza gratis →

Comments

Add Comment

Your email won't be published and will only be used for reply notifications.

Sigue leyendo

Get notified of new posts

We'll email you when 해시스크래퍼 기술 블로그 publishes new content.

Your email will only be used for new post notifications.