使用jsoup通过Java加载嵌套链接

时间:2016-11-10 20:39:04

标签: java html web-crawler jsoup

我正在通过jsoup处理crawler。我想显示来自亚洲电子商店https://world.taobao.com/的类别链接。我的代码能够找到页面上的所有链接,这要归功于:

Elements links = doc.select("a[href]");
System.out.println("Total results: " + links.size());

但不是全部。我只需要显示类别的链接,这些类别嵌套在许多<div>标记中。

anchor

这是我的代码:

package jsoup;

import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class Crawler {  

public static final String CLS_NAME = "Crawler";

    public static final String URL_SOURCE = "https://world.taobao.com/";

    public static void main(String[] args) throws IOException{

        // load Document
        Document doc = Jsoup.connect(URL_SOURCE).get();

        // select only <a> tag with "href" attribute  
        Elements links = doc.select("a[href]");
        System.out.println("Total results: " + links.size());

        for (Element url: links){
            System.out.println(String.format("* [%s] : %s ", url.text(), url.attr("abs:href")));

        }
    }
}

你能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

这实际上与您的代码无关。

特定网站使用JavaScript生成部分内容。由于Jsoup只能获取网站的静态部分,因此您无法轻松抓取它。

您仍然可以使用Selenium之类的工具,因为它们实际上是在浏览器中执行JavaScript代码。