Obtenir des Images à partir du site web
J'ai besoin de télécharger toutes les images d'un site web à qui j'ai nom d'utilisateur et mot de passe.
Dire, url de site web est
http://example.co.in/images/Photos/ABC123.jpg
dans une telle façon, il y a beaucoup d'images, mon exigence est de télécharger toutes les images.
Ce qui peut être fait en Java, C++ ou tout langage de programmation ?
Exemple de code qui vous seront utiles.
Grâce
À l'aide de code suivant pour obtenir de l'image à partir du site web de Google
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();
}}
Maintenant j'ai besoin d'aide où je ne sais pas le nom des images à-dire toutes les images avec l'extension .jpg (*.jpg) et il doit stocker dans mon dossier que 1.jpg, 2.jpg et ainsi de suite.
Alors, comment obtenir comptage du nombre d'images et comment accéder à leurs noms dans http://www.google.co.in/images/
- Vous êtes à la recherche d'un robot. Récemment, j'ai utilisé scrapy, et il est assez simple à utiliser.
- Recherchez les balises d'image, de trouver les balises " Url, le calcul de l'image Url si nécessaire (par exemple, les liens relatifs), récupérer via la normale de la requête HTTP. Quel est le réel problème?
- J'ai besoin de nombre d'images dans images/ dossier de site web. comment le faire à l'aide de Java
- Vos commentaires (et d'origine marquage) dit que java, mais la question dit "java C++ ou tout autre langage" qui est-il?
- amit son java seulement... mais si tout peut aider en C++ ou tout autre langage, ils sont les bienvenus.
- J'ai utilisé Crawler4j pour l'analyse du site et de toutes les url qu'il trouve et utiliser les Jsoup pour saisir l'image à l'aide de sélecteurs css. Les guides et exemples sur ce sont de grands à suivre
Vous devez vous connecter pour publier un commentaire.
Vous êtes à la recherche d'un robot. J'ai récemment utilisé scrapy, et il est assez simple à utiliser.
Tout ce que vous avez à faire est de créer votre Spider. Il doit générer des
Demande
objets pour chaque url que vous rencontrez, et vous pouvez télécharger l'image dans la page à l'aide d'une requête HTTP de l'image.Suivez les tutoriel, il est vraiment simple et vous montre, étape par étape, vous expliquant comment construire votre robot, et de fournir un exemple de code ainsi.
Noter que scrapy fonctionne avec python.
Il est également crawl4j pour java. Je ne suis pas personnellement familier avec elle, mais j'ai entendu qu'il est très simple ainsi.
Dirait que vous êtes à l'aise en Java, vous pouvez essayer d'utiliser Interface htmlunit.
Ils ont HtmlPage.getElementsByTagName("img") méthode, qui va vous donner la liste de balises d'image dans le HTML. Basé sur le résultat que vous pouvez obtenir l'image src emplacement et de téléchargement de l'image à partir de l'URL à l'aide de votre méthode d'essai.
Vous pouvez également utiliser d'autres parseurs HTML comme SimpleHTML Analyseur, JTidy etc pour l'analyse HTML pour obtenir la balise image.
Si vous êtes un utilisateur de Linux, jetez un oeil à l'outil de ligne de commande
wget
Comme un utilisateur de Windows, vous pouvez l'utiliser via Cygwin (http://www.cygwin.com/)
Vous êtes à la recherche pour un robot. Si vous allez pour le Java, je vous conseille d'utiliser Jsoup pour analyser le code HTML de sites web. Combiné avec commons.io vous devriez être en mesure de le faire assez facilement.
Si vous voulez un code exemple, vous pouvez prendre un coup d'oeil à une récente projet j'ai fait qui fait exactement cela.
Fondamentalement, tout ce que vous avez à faire est de charger tous les liens de la
src
attribut deimg
balises et ensuite télécharger ces images. Vous pouvez fournir des paramètres supplémentaires comme type d'image ou de taille, mais c'est à votre propre discrétion.Utilisation crawler4j il est assez facile de crawler web de la bibliothèque pour travailler avec.
Sur leur échantillon de démonstration montre comment saisir les url contenues dans une page.
Je ne voudrais pas utiliser flux d'octets à écrire un fichier. Vous pourriez peut faire un objet de Fichier à partir d'un URI et ensuite de voir comment écrire un fichier sur le disque.
Une autre solution possible est avec ImageIO()