Comment puis-je faire en sorte que WebClient télécharge les feuilles de style CSS et les corps d'image externes comme le fait un navigateur Web habituel?Comment puis-je demander au WebClient de HtmlUnit de télécharger des images et des css?
11
A
Répondre
6
Ce que je fais en ce moment est:
public static final HashMap<String, String> acceptTypes = new HashMap<String, String>(){{
put("html", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
put("img", "image/png,image/*;q=0.8,*/*;q=0.5");
put("script", "*/*");
put("style", "text/css,*/*;q=0.1");
}};
protected void downloadCssAndImages(HtmlPage page) {
String xPathExpression = "//*[name() = 'img' or name() = 'link' and @type = 'text/css']";
List<?> resultList = page.getByXPath(xPathExpression);
Iterator<?> i = resultList.iterator();
while (i.hasNext()) {
try {
HtmlElement el = (HtmlElement) i.next();
String path = el.getAttribute("src").equals("")?el.getAttribute("href"):el.getAttribute("src");
if (path == null || path.equals("")) continue;
URL url = page.getFullyQualifiedUrl(path);
WebRequestSettings wrs = new WebRequestSettings(url);
wrs.setAdditionalHeader("Referer", page.getWebResponse().getRequestSettings().getUrl().toString());
client.addRequestHeader("Accept", acceptTypes.get(el.getTagName().toLowerCase()));
client.getPage(wrs);
} catch (Exception e) {}
}
client.removeRequestHeader("Accept");
}
0
HtmlUnit ne télécharge pas de CSS ou d'images. Ils sont inutiles à un navigateur sans tête ...
dernière, j'entendu parler de c'est là, mais le billet est marqué privé: http://osdir.com/ml/java.htmlunit.devel/2007-01/msg00021.html
1
source: How to get base64 encoded contents for an ImageReader?
HtmlImage img = (HtmlImage) p.getByXPath("//img").get(3);
ImageReader imageReader = img.getImageReader();
BufferedImage bufferedImage = imageReader.read(0);
String formatName = imageReader.getFormatName();
ByteArrayOutputStream byteaOutput = new ByteArrayOutputStream();
Base64OutputStream base64Output = new base64OutputStream(byteaOutput);
ImageIO.write(bufferedImage, formatName, base64output);
String base64 = new String(byteaOutput.toByteArray());
1
Voici ce que je suis venu avec:
public InputStream httpGetLowLevel(URL url) throws IOException
{
WebRequest wrq=new WebRequest(url);
ProxyConfig config =webClient.getProxyConfig();
//set request webproxy
wrq.setProxyHost(config.getProxyHost());
wrq.setProxyPort(config.getProxyPort());
wrq.setCredentials(webClient.getCredentialsProvider().getCredentials(new AuthScope(config.getProxyHost(), config.getProxyPort())));
for(Cookie c:webClient.getCookieManager().getCookies(url)){
wrq.setAdditionalHeader("Cookie", c.toString());
}
WebResponse wr= webClient.getWebConnection().getResponse(wrq);
return wr.getContentAsStream();
}
Mes tests montrent qu'il fait proxys de soutien et qu'il porte non seulement les cookies de WebClient, mais aussi si le serveur envoie de nouveaux cookies lors de la réponse, le WebClient mangera ces cookies
Questions connexes
- 1. Silverlight: Télécharger des fichiers locaux avec WebClient
- 2. Télécharger et télécharger des images avec ASP.net
- 3. Télécharger des images à des positions fixes
- 4. php télécharger des images
- 5. Télécharger des images spécifiques
- 6. Silverlight WebClient Progressive Télécharger
- 7. Silverlight bug étrange avec des images bitmap et WebClient
- 8. Comment télécharger des images dans Rails?
- 9. Fck Editor télécharger des images
- 10. télécharger des images/audio de l'iPhone au serveur ne peut pas envoyer de grandes images
- 11. Réduire l'échelle des images CSS
- 12. télécharger des images sur le serveur
- 13. HtmlUnit onclick télécharger le fichier de téléchargement
- 14. Comment télécharger des images à appengine de gwt
- 15. Div/CSS/ZIndex - comment superposer des images?
- 16. CSS Pullquote avec des images
- 17. OBOUT Suite: Éditeur HTML - Télécharger des images
- 18. Télécharger des images via FCKeditor en drupal
- 19. Utilisation du dégradé CSS au lieu des images
- 20. Android: Bug avec ThreadSafeClientConnManager télécharger des images
- 21. Paperclip S3 télécharger des images à distance
- 22. télécharger des images asynchoronus sur l'iphone
- 23. iphone uiwebview télécharger la page complète avec CSS et Images
- 24. Télécharger des images dans Windows Mobile 6 in .net
- 25. FBConnect - télécharger des images sur le mur
- 26. Symfony - télécharger des images et enregistrer en tant que blob
- 27. Silverlight Http Post pour télécharger des images
- 28. Comment montrer, ne pas télécharger, des images dans Apache?
- 29. cs-cart like télécharger des images
- 30. Télécharger des images à partir de http://images.google.ru
si l'utilisateur veut vérifier le css ou des images avec un navigateur sans tête? Cela semble être ce que laisse entendre la question. Je suppose que css et les images ne seraient pas inutiles, non? En fait, c'est ce qui m'a conduit à cette question, ce serait bien si je pouvais utiliser un navigateur sans tête pour vérifier une image par la taille ou le hachage ou un CSS pour les valeurs d'une couleur de fond. Essayer d'aider ici ... votre réponse sort un peu argumentative plutôt que constructive. – fooMonster