有图片的地址,如:http://i2.pixiv.net/img-original/img/201...
还有登陆后获取的cooikes:Connection cookies(Map<String, String> cookies);
登陆和获取cooikes以及解析页面是使用的jsoup。
但是需要登陆后才能获取,使用以下代码:
private void downloadImg(String imgURL) throws MalformedURLException, IOException {
URL url = new URL(imgURL);
URLConnection uc = url.openConnection();
InputStream is = uc.getInputStream();
File file = new File("D:\\pixiv");
FileOutputStream out = new FileOutputStream(file);
int i = 0;
while ((i = is.read()) != -1) {
out.write(i);
}
is.close();
}
只能下载不需要登陆的页面的图片。
要如何使用jsoup带cooikes来从网站下载图片
Le problème a été résolu. Utilisez Firebug pour capturer le paquet de requête envoyé lors de la navigation dans les images dans le navigateur, puis utilisez la construction URLConnection pour envoyer le paquet de requête avec les cookies selon son format. La vitesse de téléchargement est trop lente pour les images de plus de 1 Mo.
Peu importe ce que vous utilisez pour analyser le HTML, la seule chose qui détermine votre connexion est le cookie dans la requête http, vous pouvez donc d'abord faire une demande de connexion, obtenir le cookie de http res, puis définir le cookie sur le prochaine requête http. Ceci termine l'opération de conservation des cookies du navigateur et les données de ressources qui nécessitent une connexion peuvent être téléchargées
Après avoir extrait img src, si vous utilisez URLConnection pour télécharger des images, avez-vous l'autorisation ? Vérifiez s'il y a quelque chose comme session_id sur le site Web. En bref, recherchez l'ID de connexion de l'utilisateur et mettez un identifiant dans img src
Utilisez
apache httpClient
pour simuler la connexion