2016-08-23 6 views
2

私はJavaで働いており、Jsoupを使っています。私はTimeを以下のURLから探したいと思っています。私はこれらを試しましたが、それを得ることができませんでした。時間はspanタグにありますが、id(timestamp--time timeago)の下に私はそれを試していますが、私は何が問題なのか分かりません。Jsoupを使って定義されたURLから時間を見つける方法はありますか?

Document doc; 
      Elements lin = null; 
      String url = "http://www.dawn.com/news/1277133/this-is-how-pakistanis-around-the-country-are-celebrating-independence-day"; 
      try { 
       doc = Jsoup.connect(url).timeout(20*1000).userAgent("Chrome").get(); 
       lin = doc.getElementsByClass("span.timestamp--time timeago"); 
//    System.out.println(lin); 
      } catch (IOException e) { 
        e.printStackTrace(); 
       } 
      int i=0; 
      for(Element l :lin){ 
       System.out.println(""+i+ " : " +l.text()); 
       i++; 
      } 

答えて

1

lin = doc.select("span.timestamp--time.timeago"); 

出力で

lin = doc.getElementsByClass("span.timestamp--time timeago"); 

を交換してください:APIgetElementsByClassに言葉遣いから

0 : Aug 14, 2016 04:29pm 
1 : Aug 14, 2016 12:39pm 
2 : Aug 14, 2016 01:34pm 
3 : Aug 14, 2016 01:37pm 
4 : Aug 14, 2016 04:19pm 
5 : Aug 15, 2016 01:11am 
6 : Aug 15, 2016 08:49am 
7 : Aug 16, 2016 12:32pm 

のみ受け付けます単一のクラス名。したがって、この場合lin = doc.getElementsByClass("timestamp--time");は同じ出力を返しますが、複数のクラスで選択する場合は、selectよりも優れた選択です。

+0

ソースコード ' 2016年8月24日 '' timeago'はあなたが 'span.timestamp - time.timeago'で使ったのと違うクラスではありません([。timeago] '<いくつかの空白> '。クラス名の後にスペースがあると、それは 'class'名になると判断するべきですか?この 'doc.select(" span.timestamp - time timeago ")の代わりにこの' doc.select( "span.timestamp - time.timeago"); 'を使用したとき、' – Humty

+0

'timeago'は異なっていますクラス(cssファイルには定義はありませんが、これを使用するのと同じ方法で使用することができます)、スペースはhtmlの 'class'属性のディバイダーです。クロムでは、デベロッパーツール(Ctrl + Shift * I)を使用することができます。エレメントタブで探しているノードを選択すると、クロムはCSSセレクター(ドットで区切られた)でページ上にホバーを表示します。あなたの質問を解決した場合は、この回答に解決策としてマークしてください。 –

+0

ああああ。私は今に達しました。確かに。受け入れられました。 – Humty

1

あなたのCSSセレクタが間違っています。代わりにこれを使用します。

lin = doc.select("span.timestamp--time.timeago"); 
+0

なぜこのdoc.select( "span.timestamp - time timeago"); '? 'timeago'は別のクラス名ですか? – Humty

+0

あなたのCSSクエリは、そのクラスのスパンでtimeagoという名前のタグを探しています。複数のクラスで検索したい場合:.class1.class2.class3 –

関連する問題