繁体   English   中英

使用jsoup在div中选择标签的问题

[英]Issue using jsoup to select tags within div

我有一个HTML文件,其中包含以下内容:

<div class="title"><a href="../dorothy_perkins_true_blue_suedette/thing?id=130434603" title="Dorothy Perkins True blue suedette clutch bag">Dorothy Perkins True blue suedette clutch bag</a></div>

我想提取href的网址。 我有以下代码:

            Document doc = Jsoup.connect(url).get();
            Elements products = doc.select("div.title a[href]");
            System.out.println("size: "+products.size());

但是打印件显示大小为0。找不到任何匹配项。 我使用的网址是http://www.polyvore.com/bags/shop?category_id=35 您可以看一下源代码,我很确定上面的代码是正确的。 如果任何人都可以提出想法,那将是很棒的。 非常感谢。

我相信您使用以下代码进行连接。

doc = Jsoup.connect("http://www.polyvore.com/bags/shop?category_id=35").get();

如果您执行System.out.println(doc.html()); ,它返回的HTML源代码的全部内容与我们通过Mozilla和Chrome之类的浏览器看到的内容完全不同。

要解决此问题,需要在Jsoup连接中指定userAgent参数,如下所示。

    Document doc = null;
    Elements aEles = null;

    try {
        // doc = Jsoup.connect("http://www.polyvore.com/bags/shop?category_id=35").get();

        doc = Jsoup.connect("http://www.polyvore.com/bags/shop?category_id=35")
                .userAgent("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36")
                .referrer("http://www.google.com").get();

        if (doc != null) {
            aEles = doc.select("div.title > a");

            if (aEles != null)
                System.out.println("size: " + aEles.size());
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM