Wenn ein Element nicht gecrawlt werden kann: Zugriff auf iframe
Beim Erstellen eines Webcrawlers stoßen Sie früher oder später auf das zu durchsuchende Element iframe. Heute werden wir uns das Konzept von iframes, deren Vor- und Nachteile sowie Anwendungsfälle ansehen und auch untersuchen, wie man mit Selenium und Watir auf den Inhalt von iframes zugreifen kann.
Konzept von iframes
Ein iframe ist eine Abkürzung für "Inline Frame" und wird als HTML-Element verwendet, um eine andere Webseite innerhalb einer Webseite einzubetten. Mit anderen Worten bietet es die Möglichkeit, eine andere Webseite innerhalb eines kleinen Rahmens auf einer Webseite anzuzeigen. Dies ermöglicht die Integration und Interaktion von Inhalten zwischen Webseiten und wird für verschiedene Anwendungsfälle genutzt.
Verwendung von iframes
1) Einbetten von Inhalten einer anderen Website auf meiner Website
- Auf Websites werden iframes aus verschiedenen Gründen verwendet, z. B. um YouTube-Videos, SlideShare-Präsentationen, Google Maps oder Werbeinhalte einzubetten. iframes können auch verwendet werden, um PDFs einzubetten, die nicht heruntergeladen werden müssen.
2) Trennung von Bereichen innerhalb einer Seite
- iframes können verwendet werden, um den linken Bereich einer Website als Menübereich, den rechten Bereich als Hauptinhalt oder den unteren Bereich als Werbebereich zu trennen.
3) Dynamisches Laden von Inhalten
- Durch iframes können dynamisch geladene Inhalte oder Web-Apps innerhalb der aktuellen Seite angezeigt werden. Dadurch wird die Interaktion zwischen Webseiten ermöglicht.
Vor- und Nachteile von iframes
1) Vorteile
Einfaches Einbetten externer Inhalte
Mit iframes können Inhalte anderer Websites einfach in der aktuellen Seite eingebettet und angezeigt werden, was nützlich ist, um Inhalte verschiedener Dienste zu integrieren.
Mit dem folgenden einfachen Code können Sie eine Karte leicht einbetten. (Quelle: 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>
Nützlich bei der mehrfachen Verwendung desselben Inhalts
- Wenn derselbe Inhalt auf verschiedenen Seiten mehrfach verwendet werden muss, können Sie mit iframes Duplikate vermeiden.
Beeinflusst die aktuelle Seite nicht
- Der Inhalt innerhalb eines iframes funktioniert unabhängig von externen Webseiten und beeinflusst daher die aktuelle Seite nicht durch Änderungen am externen Inhalt.
2) Nachteile
Kann anfällig für Sicherheitsprobleme sein
- Durch die Verwendung von iframes können externe Inhalte gemäß der gleichen Domain und Sicherheitsrichtlinien wie interne Seiten ausgeführt werden, was zu Sicherheitsrisiken wie XSS (Cross Site Scripting) führen kann.
Kann zu Zugänglichkeitsproblemen führen
- Der Inhalt innerhalb eines iframes ist von der ursprünglichen Dokumentstruktur getrennt, was zu Zugänglichkeitsproblemen führen kann, insbesondere für Benutzer von Hilfstechnologien wie Bildschirmlesern.
Kann sich negativ auf das SEO auswirken
Früher hieß es, dass iframes aufgrund der Unfähigkeit von Suchmaschinen, deren Inhalt zu indizieren, sich negativ auf das SEO auswirken. Heutzutage ist es jedoch schwierig zu sagen, ob iframes direkt das SEO beeinflussen.
Suchmaschinen können nun iframes erkennen und deren Inhalt als Inhalte einer anderen Website behandeln, sodass iframes weder positiv noch negativ zur Suchmaschinenoptimierung beitragen.
Es wird jedoch empfohlen, die Verwendung von iframes auf der Hauptseite zu vermeiden, wenn die Hauptseite in den Suchergebnissen besser platziert werden soll. Dies liegt daran, dass es für die SEO besser ist, die Hauptseite mit einzigartigen und nützlichen Inhalten zu gestalten, anstatt externe Inhalte zu verwenden.
Kann die Größenanpassung erschweren
- Da die Größe eines iframes je nach Größe des Originalinhalts angepasst wird, kann dies zu Schwierigkeiten bei responsivem Layoutdesign führen.
Kann die Benutzererfahrung beeinträchtigen
- Der Inhalt innerhalb eines iframes kann dazu führen, dass der Seiteninhalt während des Ladens des iframe-Inhalts stehen bleibt oder verzögert wird, was die Benutzererfahrung beeinträchtigen kann.
So greifen Sie mit Selenium auf Informationen innerhalb eines iframes zu
Mit Selenium können Sie auf iframes zugreifen, indem Sie die folgenden Schritte ausführen.
1) Webseite aufrufen
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome() # 웹 드라이버 선택 (예: Chrome)
driver.get("URL_OF_YOUR_PAGE") # 접근할 웹 페이지의 URL 입력
2) Identifizierung des iframe-Elements
Sie können das iframe-Element mithilfe der Methode find_element finden. Dabei können Sie die ID, den Namen, den Index usw. des iframes verwenden.
iframe_element = driver.find_element(By.ID, "iframe_id") # iframe의 id를 사용하여 찾는 예시
3) Wechsel in den iframe
Verwenden Sie die Methode switch_to.frame(), um den Kontext in den iframe zu ändern.
driver.switch_to.frame(iframe_element) # iframe 내부로 전환
4) Erforderliche Aktionen innerhalb des iframes ausführen
driver.find_element(By.CLASS_NAME, "element_class") # iframe 안의 엘리먼트의 class로 찾는 예시
5) Zurück zum ursprünglichen Kontext nach Abschluss der Aktionen
driver.switch_to.default_content() # 원래의 컨텍스트로 복귀
So greifen Sie mit Watir auf Informationen innerhalb eines iframes zu
Mit Watir können Sie auf iframes zugreifen, indem Sie die folgenden Schritte ausführen.
1) Webseite aufrufen
require 'watir'
browser = Watir::Browser.new :chrome # 브라우저 선택 (예: Chrome)
browser.goto 'URL_OF_YOUR_PAGE' # 접근할 웹 페이지의 URL 입력
2) Identifizierung des iframe-Elements
iframe_element = browser.iframe(id: 'iframe_id') # iframe의 id를 사용하여 찾는 예시
3) Erforderliche Aktionen innerhalb des iframes ausführen
iframe.element(xpath: "//button[@class='CLASS_NAME']") # iframe 안의 엘리먼트를 class로 찾는 예시
Fazit
Wenn Sie beim Erstellen eines Webcrawlers auf ein XPath stoßen, das nicht gefunden werden kann, liegt das Element in den meisten Fällen wahrscheinlich innerhalb eines iframes. Beim Crawlen von Inhalten innerhalb von iframes müssen Sie daher spezielle Methoden verwenden, um darauf zuzugreifen.
Heute haben wir das Konzept von iframes, deren Vor- und Nachteile sowie Methoden zum Zugriff auf iframes beim Erstellen von Webcrawlern behandelt.
Die oben genannten Methoden werden dazu beitragen, Ihre Fähigkeiten im Webcrawling zu verbessern und Ihnen bei der Sammlung verschiedener Daten zu helfen.
Daten sammeln, jetzt automatisieren
Starten Sie in 5 Minuten ohne Programmierung · Erfahrung im Crawlen von über 5.000 Websites




