Programmatisch SVG von Webseiten extrahieren
Die Fähigkeit, Bilder aus HTML zu extrahieren, ist wichtig für verschiedene Anwendungen wie Web Scraping und Inhaltsanalyse. Aspose.HTML for Java ist eine robuste Bibliothek, die diesen Prozess vereinfacht, indem sie Entwicklern eine Reihe von Werkzeugen zur Verfügung stellt, um nahtlos in HTML-Dokumenten zu navigieren und Informationen zu sammeln. Lassen Sie uns untersuchen, wie man externe SVG-Bilder aus einer Website extrahiert.
SVGs aus HTML mit Java extrahieren
Mit der Bibliothek Aspose.HTML for Java können Sie schnell Ihre eigene Anwendung mit einem robusten Satz von Tools zum Parsen und Extrahieren von Daten aus HTML-Dokumenten erstellen. Das folgende Beispiel zeigt, wie Sie alle externen SVGs aus einem HTML-Dokument mit nur wenigen Zeilen Java-Code extrahieren können.
Java-Code zum Extrahieren von SVG aus einer Website
// Open a document you want to download external SVGs from
final HTMLDocument document = new HTMLDocument("https://products.aspose.com/html/net/");
// Collect all <img> elements
HTMLCollection images = document.getElementsByTagName("img");
// Create a distinct collection of relative image URLs
java.util.Set<String> urls = new HashSet<>();
for (Element element : images) {
urls.add(element.getAttribute("src"));
}
// Filter out non SVG images
java.util.List<String> svgUrls = new ArrayList<>();
for (String url : urls) {
if (url.endsWith(".svg")) {
svgUrls.add(url);
}
}
// Create absolute SVG image URLs
java.util.List<Url> absUrls = svgUrls.stream()
.map(src -> new Url(src, document.getBaseURI()))
.collect(Collectors.toList());
for (Url url : absUrls) {
// Create a downloading request
final RequestMessage request = new RequestMessage(url);
// Download SVG image
final ResponseMessage response = document.getContext().getNetwork().send(request);
// Check whether response is successful
if (response.isSuccess()) {
String[] split = url.getPathname().split("/");
String path = split[split.length - 1];
// Save file to a local file system
FileHelper.writeAllBytes(path, response.getContent().readAsByteArray());
}
}
Schritte zum Extrahieren von SVGs aus HTML
- Verwenden Sie den Konstruktor
HTMLDocument(
Url
) , um eine Instanz der Klasse HTMLDocument zu erstellen und übergeben Sie die URL der Website, aus der Sie externe SVG-Bilder extrahieren möchten. - Verwenden Sie die Methode
getElementsByTagName(
"img"
) , um alle<img>
Elemente zu sammeln. - Extrahieren Sie das Attribut “src” aus jedem Bildelement mit der Methode
getAttribute(
"src"
) und erstellen Sie eine eigene Sammlung von relativen Bild-URLs. - Filtern Sie nur SVG-Bild-URLs, indem Sie prüfen, ob jede URL mit
.svg
endet, und fügen Sie diese einer neuen Liste hinzu. - Erzeugen absoluter Bild-URLs unter Verwendung der Klasse
Url
und der Eigenschaft
BaseURI
der KlasseHTMLDocument
. - Erstellen Sie für jede absolute URL eine Anfrage mit dem
RequestMessage(
url
) Konstruktor. Senden Sie jede Anfrage und prüfen Sie die Antwort auf Erfolg. - Wenn die Antwort erfolgreich war, verwenden Sie
FileHelper.writeAllBytes()
, um den SVG-Inhalt im lokalen Dateisystem zu speichern.
Mit Aspose.HTML for Java können Sie ganz einfach ein Tool erstellen, das eine Webseite analysiert, SVG-Bildquellen identifiziert und SVGs herunterlädt. Es ist eine leistungsstarke Lösung für alle, die SVGs zur Analyse, Archivierung oder Inhaltserstellung sammeln müssen – ohne die Mühe, dies manuell zu tun. Weitere Informationen zur programmatischen Extraktion verschiedener Arten von SVGs (Inline und extern) aus einer Website mit Java finden Sie im Dokumentationsartikel Extract SVG From Website in Java .
Hinweis: Es ist wichtig, die Urheberrechtsgesetze zu respektieren und die entsprechenden Genehmigungen oder Lizenzen einzuholen, bevor gespeicherte Bilder für kommerzielle Zwecke verwendet werden. Wir unterstützen nicht die Extraktion und Verwendung von Dateien anderer Personen für kommerzielle Zwecke ohne deren Zustimmung.
Erste Schritte mit der Java-HTML-Parser-Bibliothek
Die HTML-API ist eine erweiterte Web-Scraping- und HTML-Parsing-Bibliothek. Man kann Knoten erstellen, bearbeiten, durch Knoten navigieren, Daten extrahieren und HTML-, XHTML- und MHTML-Dateien in PDF, Bilder und andere Formate konvertieren. Darüber hinaus verarbeitet es auch CSS, HTML Canvas, SVG, XPath und JavaScript, um Manipulationsaufgaben zu erweitern. Es ist eine eigenständige API und erfordert keine Softwareinstallation.Sie können die neueste Version direkt aus dem Aspose Maven Repository herunterladen und in Ihrem Maven-basierten Projekt installieren, indem Sie die folgenden Konfigurationen zu pom.xml hinzufügen.
Repository
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
Dependency
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-html</artifactId>
<version>version of aspose-html API</version>
<classifier>jdk17</classifier>
</dependency>
Andere unterstützte Funktionen
Verwenden Sie die Aspose.HTML for Java-Bibliothek, um HTML-basierte Dokumente zu analysieren und zu manipulieren. Klar, sicher und einfach!