Je suis en train de télécharger des images d'un site Web et ils sont stockés dans une table sous les éléments div. J'utilise Java avec bibliothèque HtmlUnit et c'est ce que j'ai jusqu'à présent:HtmlUnit lien de téléchargement de DIV
_page = (HtmlPage) linkToPicsPage.click();
List<HtmlElement> _divList = _page.getElementsByIdAndOrName("imgcontainer");
int num = 0;
for (HtmlElement el : _divList) {
InputStream is = el.click().getWebResponse().getContentAsStream();
File path = new File(_downloadPath+_car.getRegNumber());
if (!path.exists())
path.mkdir();
writeToFile(is,new File(_downloadPath+_car.getRegNumber()+System.getProperty("file.separator")+_car.getRegNumber()+"["+num+"].jpg"));
num++;
}
Le code du site ressemble à ceci:
<table id="ctl00_ContentPlaceContenido_GridImagenes" cellspacing="0" border="0" style="border-collapse:collapse;">
<tr>
<td>
<div id="imgcontainer">
<div class="imgitem">
<a href="descarga.aspx?IDOWNER=40312&ID=598477&Action=View">
<img alt="Foto Frente Izquierda" border="0" src="imgthumb.aspx?IDOWNER=40312&ID=598477&Action=View"/>
</a>
<br />
Foto Frente Izquierda
</div>
</div>
</td><td>
Mais ce que je suis TELECHARGEMENT est un code HTML au lieu de les images elles-mêmes. Je ne sais pas comment puis-je obtenir l'attribut href à partir des éléments HtmlDivision que j'obtiens dans "_divList". Aucune suggestion?
Merci
Edit1:
Ceci est le code actuel que j'utilise pour les télécharger, le problème avec ce code est que je télécharge certains éléments que je ne ai pas besoin (i télécharge tout ce qui a "descarga.aspx" dans le href). C'est pourquoi je veux être plus précis et ne télécharger que les images. Comme vous pouvez le voir, les HtmlAnchors que je reçois par la recherche de « descarga.aspx » ne me rediriger vers une autre page:
List<HtmlAnchor> picsLinks = new LinkedList<HtmlAnchor>();
picsLinks = _page.getAnchors();
int num = 0;
for (HtmlAnchor currentPic : picsLinks) {
if (currentPic.getHrefAttribute().contains("descarga.aspx")) {
InputStream is = currentPic.click().getWebResponse().getContentAsStream();
File path = new File(_downloadPath+_car.getRegNumber());
if (!path.exists())
path.mkdir();
writeToFile(is,new File(_downloadPath+_car.getRegNumber()+System.getProperty("file.separator")+_car.getRegNumber()+"["+num+"].jpg"));
_log.append("....Downloaded picture "+regNumber+num+".jpg\n");
num++;
}
_log.setCaretPosition(_log.getDocument().getLength());
}
Avez-vous bien vérifié que 'descarga.aspx' renvoie directement l'image, au lieu d'être une page de redirection? Vous devriez vous assurer que vous utilisez Firebug. – Riduidel
Oui, j'ai modifié la question et ajouté l'ancien code, où vous pouvez voir que je n'ai aucun problème quand je reçois les HtmlAnchors eux-mêmes – oli206