Échec du crawling ? C'est probablement à cause de ce problème ! Tout sur la résolution des iframes

Lorsqu'il y a des éléments qui ne peuvent pas être extraits en grattant : découvrez comment accéder aux iframes et les avantages et inconvénients des iframes. Nous examinerons également comment accéder au contenu de l'iframe en utilisant Selenium et Watir.

6
Échec du crawling ? C'est probablement à cause de ce problème ! Tout sur la résolution des iframes

Lorsque vous ne pouvez pas crawler un élément : accéder à un iframe

Lors de la création d'un web crawler, vous rencontrerez inévitablement un élément que vous ne pouvez pas crawler, et c'est souvent un iframe. Aujourd'hui, nous allons examiner le concept d'iframe, ses avantages et inconvénients, ainsi que la manière d'accéder au contenu d'un iframe en utilisant Selenium et Watir.

Concept de l'iframe

Un iframe, abréviation de "Inline Frame", est un élément HTML utilisé pour inclure une autre page web à l'intérieur d'une page web. En d'autres termes, il permet d'insérer une autre page web dans un petit cadre à l'intérieur d'une page web, facilitant l'intégration et l'interaction entre les contenus des pages web pour divers cas d'utilisation.

Utilisations de l'iframe

1) Incorporer le contenu d'un autre site web dans votre site web

  • Les sites web utilisent des iframes pour diverses raisons telles que l'insertion de vidéos YouTube, de diaporamas SlideShare, de cartes Google ou de contenus publicitaires. Les iframes peuvent également être utilisés pour insérer des PDF sans nécessiter de téléchargement par l'utilisateur.

2) Délimiter des zones distinctes à l'intérieur d'une page

  • Les iframes peuvent être utilisés pour séparer des zones telles que la zone de menu à gauche et la zone de contenu principal à droite d'un site web, ou pour isoler la section publicitaire en bas de page.

3) Chargement de contenu dynamique

  • Les iframes permettent d'afficher dynamiquement du contenu ou des applications web à l'intérieur de la page actuelle. Cela facilite l'interaction entre les pages web.

Avantages et inconvénients de l'iframe

1) Avantages

Facilité d'intégration de contenu externe

  • Les iframes permettent d'intégrer facilement le contenu d'autres sites web dans la page actuelle, facilitant ainsi la présentation de contenus provenant de différents services.

  • Vous pouvez facilement insérer une carte avec le code simple ci-dessous. (Source : 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>

Pratique pour réutiliser le même contenu plusieurs fois

  • Lorsque vous devez utiliser le même contenu sur plusieurs pages, les iframes vous permettent d'éviter la duplication du travail.

Ne perturbe pas la page actuelle

  • Le contenu à l'intérieur de l'iframe fonctionne de manière indépendante par rapport à la page web principale, ce qui signifie que les modifications du contenu externe n'affectent pas la page actuelle.

2) Inconvénients

Vulnérabilité à la sécurité

  • L'utilisation d'iframes peut exposer votre site à des risques de sécurité tels que les attaques XSS (Cross Site Scripting) car le contenu externe peut s'exécuter dans le même domaine et respecter les politiques de sécurité.

Problèmes d'accessibilité

  • Le contenu à l'intérieur de l'iframe est séparé du document d'origine, ce qui peut poser des problèmes d'accessibilité pour les utilisateurs qui dépendent de technologies d'assistance comme les lecteurs d'écran.

Impact négatif sur le SEO

  • Autrefois, les moteurs de recherche ne pouvaient pas indexer le contenu des iframes, ce qui les rendait peu favorables pour le SEO. Cependant, aujourd'hui, l'impact des iframes sur le SEO est plus complexe.

  • Les moteurs de recherche peuvent désormais détecter les iframes et les considérer comme du contenu provenant d'autres sites web, ce qui signifie que les iframes n'ont pas d'impact significatif sur le classement des moteurs de recherche.

  • Cependant, il est recommandé d'éviter l'utilisation d'iframes sur les pages principales que vous souhaitez voir bien référencées. Il est préférable de composer ces pages avec un contenu unique et utile plutôt que du contenu externe pour améliorer le SEO.

Difficulté à ajuster la taille

  • Étant donné que la taille de l'iframe dépend de la taille du contenu d'origine, cela peut poser des problèmes dans la conception de mises en page réactives.

Impact sur l'expérience utilisateur

  • Le chargement du contenu à l'intérieur de l'iframe peut entraîner des retards ou des interruptions dans le chargement de la page, ce qui peut nuire à l'expérience utilisateur.

Comment extraire des informations d'un iframe avec Selenium

Avec Selenium, vous pouvez accéder à un iframe en suivant ces étapes :

1) Accéder à la page web

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

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

2) Identifier l'élément iframe

Vous pouvez utiliser la méthode find_element pour trouver l'iframe en utilisant des attributs tels que l'ID, le nom ou l'index.

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

3) Changer de contexte vers l'iframe

Utilisez la méthode switch_to.frame() pour basculer vers l'intérieur de l'iframe.

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

4) Effectuer les opérations nécessaires à l'intérieur de l'iframe

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

5) Revenir au contexte d'origine une fois les opérations terminées

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

Comment extraire des informations d'un iframe avec Watir

Avec Watir, vous pouvez accéder à un iframe en suivant ces étapes :

1) Accéder à la page web

require 'watir'

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

2) Identifier l'élément iframe

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

3) Effectuer les opérations nécessaires à l'intérieur de l'iframe

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

Conclusion

Lorsque vous ne parvenez pas à crawler un élément malgré l'existence d'un xpath, il est probable que cet élément se trouve à l'intérieur d'un iframe. Lors du crawling, les éléments à l'intérieur des iframes ne sont pas directement accessibles et nécessitent des méthodes spécifiques pour y accéder.

Aujourd'hui, nous avons examiné le concept de l'iframe, ses avantages et inconvénients, ainsi que la manière d'accéder à un iframe lors de la création d'un web crawler.

Les méthodes mentionnées ci-dessus amélioreront vos compétences en web crawling et vous aideront à collecter une grande variété de données.

Collecte de données, passez à l'automatisation maintenant

Commencez en 5 minutes sans coder · Expérience de crawling sur plus de 5 000 sites web

Commencez gratuitement →

Comments

Add Comment

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

Continuer la lecture

Get notified of new posts

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

Your email will only be used for new post notifications.