2016-11-10 13 views
1

jsoupを介してクローラで作業しています。私はアジアのe-shop https://world.taobao.com/からカテゴリのリンクを表示したいと思います。私のコードは、ページ上のすべてのリンクを見つけることができます:Javaでjsoupを使ってネストされたリンクをロードする

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

これは実際にあなたのコードとは関係ありません。

特定のサイトは、JavaScriptを使用してコンテンツの一部を生成します。 Jsoupはサイトの静的な部分だけを取得できるため、簡単にこれをクロールすることはできません。

実際にはブラウザ内でJavaScriptコードを実行するため、Seleniumなどのツールを使用できます。

+0

ありがとうAlexey、それは私が恐れる答えだった:) – koubik

+0

そして、私はそれがjsoup上の特定の製品に肯定的および否定的なコメントを抽出することが可能かどうか尋ねたいと思いますか? https://i.stack.imgur.com/GDTMM.png – koubik

+0

JavaScriptではなく、サーバー側のページにレンダリングされたものをJSoupで抽出することができます。 –

関連する問題