首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DIV中的HtmlUnit下载链接

问DIV中的HtmlUnit下载链接
EN

Stack Overflow用户
提问于 2010-12-02 18:34:48
回答 1查看 1.3K关注 0票数 0

我正在尝试从一个网站下载一些图片,它们存储在div元素下的一个表中。我正在使用Java和HtmlUnit库,这就是我到目前为止所拥有的:

代码语言:javascript
复制
    _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++;
    }

网站代码如下所示:

代码语言:javascript
复制
<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&amp;ID=598477&amp;Action=View">
                <img alt="Foto Frente Izquierda" border="0" src="imgthumb.aspx?IDOWNER=40312&amp;ID=598477&amp;Action=View"/>
            </a>
            <br />
            Foto Frente Izquierda
        </div>
    </div>
</td><td>

但我下载的是一些HTML代码,而不是图像本身。我不知道如何从"_divList“中获得的HtmlDivision元素中获取href属性。有什么建议吗?

谢谢

Edit1:

这是我用来下载它们的当前代码,问题是我正在下载一些不需要的元素(我正在下载在href中有"descarga.aspx“的所有内容)。这就是为什么我想更具体,只下载图片的原因。正如您所看到的,我通过搜索"descarga.aspx“得到的HtmlAnchors没有将我重定向到另一个页面:

代码语言:javascript
复制
    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());
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-03 03:07:50

我不能说没有看到整个网站,但我怀疑这与点击"imgcontainer“有关,它包含的不仅仅是图像。当您在浏览器中手动单击"Foto Frente Izquierda“字样时会发生什么?

试着直接点击图片,使用getByXPath和类似于"//div@class='imgitem'/a“的东西(我想不出来),而不是getElementsByIdAndOrName。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4333977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档