Holen Sie sich Bilder von der website
Muss ich laden Sie alle Bilder von einer website, zu denen ich Benutzernamen und Passwort.
Sagen, website-url
http://example.co.in/images/Photos/ABC123.jpg
so gibt es viele Bilder, meine Forderung ist zum herunterladen aller Bilder.
Was kann getan werden, in Java, C++ oder einer beliebigen Programmiersprache ?
Beispielcode wäre hilfreich.
Dank
Verwenden Sie folgenden code um Bild von der Google-website
import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.URL;
class Test {
public static void main(String args[]) throws Exception {
System.out.println("Hello World");
URL url = new URL("http://www.google.co.in/images/google_favicon_128.png");
InputStream in = new BufferedInputStream(url.openStream());
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
int n = 0;
while (-1 != (n = in.read(buf))) {
out.write(buf, 0, n);
}
out.close();
in.close();
byte[] response = out.toByteArray();
FileOutputStream fos = new FileOutputStream("C://ABC//google1.jpg");
fos.write(response);
fos.close();
}}
Nun brauche ich Hilfe, wo ich nicht weiß, Namen der Bilder sagen, dass alle Bilder mit der Endung .jpg (*.jpg) und speichern in meinem Ordner 1.jpg, 2.jpg und so weiter.
So, wie man zählen der Anzahl der Bilder und wie Sie Zugang zu Ihren Namen in http://www.google.co.in/images/
Suchen Sie für die image-tags, finden die tags, URLs, berechnen Sie die Bild-URLs, wenn nötig (z.B. relative links), abrufen über eine normale HTTP-Anfrage. Was ist das eigentliche Problem?
Ich brauche Anzahl der Bilder im images/ - Ordner der website. wie mit Java
Ihre Kommentare (und die original-tagging) sagt java, aber die Frage sagt "java C++ oder einer anderen Sprache" welche ist es?
amit seine java-only... aber wenn einer helfen kann in C++ oder einer anderen Sprache, sind Sie willkommen.
InformationsquelleAutor prathameshr | 2013-01-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du suchst einen crawler. Ich habe vor kurzem verwendet scrapy, und es ist ziemlich einfach zu bedienen.
Alles, was Sie tun müssen, ist erstellen Sie Ihre Spider. Es muss zu generieren
Anfrage
Objekte für jede url, die Sie auftreten, und Sie können laden Sie das Bild in die Seite über eine zusätzliche HTTP-Anfrage zum Bild.Folgen Sie den tutorial, es ist wirklich einfach und führt Sie Schritt für Schritt, erklären, wie Sie bauen Ihre crawler und die Bereitstellung einer code-Beispiel als gut.
Beachten Sie, dass scrapy arbeitet mit python.
Gibt es auch crawl4j für java. Ich bin nicht persönlich kennen, aber ich habe gehört, es ist sehr einfach als gut.
InformationsquelleAutor amit
Sieht aus wie Sie sind komfortabel in Java, können Sie versuchen, mit HtmlUnit.
Haben Sie HtmlPage.getElementsByTagName("img") Methode, die Ihnen die Liste von Bild-tags in der HTML. Basierend auf dem Ergebnis, das Sie bekommen können das image src Ort und laden Sie das Bild aus der URL, die mit Ihrem test-Methode.
Können Sie auch andere HTML-Parser wie SimpleHTML-Parser, JTidy etc zum Parsen von HTML, um das image-tag.
InformationsquelleAutor Jayamohan
Wenn Sie ein Linux-Benutzer sind, haben Sie einen Blick auf das Kommandozeilen-tool
wget
Als Windows-Benutzer könnten Sie es über Cygwin (http://www.cygwin.com/)
InformationsquelleAutor MrSmith42
Du suchst einen crawler. Wenn Sie sich für Java, würde ich empfehlen, mit Jsoup zum Parsen der HTML-Code aus Webseiten. Kombiniert mit Unterhaus.io Sie sollten in der Lage sein, dies zu tun ziemlich einfach.
Wenn Sie möchten, eine vollständige code-Beispiel, können Sie werfen Sie einen Blick auf eine aktuelle Projekt ich gemacht, tut genau dies.
Grundsätzlich alles, was Sie tun müssen, ist laden Sie alle links, die von der
src
Attributimg
- tags und laden Sie dann diese Bilder. Sie können zusätzliche Parameter wie Bild-Typ oder Größe, aber das ist bis zu Ihrem Ermessen.InformationsquelleAutor Jeroen Vannevel
Verwenden crawler4j es ist ziemlich einfach web-crawler-Bibliothek, mit zu arbeiten.
Auf Ihre sample-demo zeigt, wie zu packen enthaltenen urls innerhalb einer Seite.
Ich würde nicht mit byte-streams für eine Datei schreiben. Sie können eine File-Objekt, das aus einer URI und dann herauszufinden, wie schreibt man eine Datei auf der Festplatte.
Andere mögliche Lösung ist mit ImageIO()
Autsch für den down-vote. Immer urls aus einer Seite, ist super einfach, die linken, die sich, weil Bibliotheken für web-crawler, wo bereits aufgeführt.
InformationsquelleAutor Dan