2016-07-19 1 views
0

現在、私は与えられたURL e.g.からツイッチ(Videogameストリーミングサイト)のすべてのストリーマーを取得し、Jsoupを使用してテキストファイルにリストするプログラムを作成しています。ウェブサイト上にテキストが表示されない

しかし、私が試しても、ストリーマーの名前を取得できないようです。しばらくすると、何らかの理由でページソースにストリーマーの名前が含まれていないことが判明しました。これは問題になると思いますか?

ここに私のコードがあります。

public static void main(String[] args) throws IOException { 
    int i = 0; 

    PrintWriter streamerwriter = new PrintWriter("streamer.txt", "UTF-8"); 
    Document doc = Jsoup.connect(https://www.twitch.tv/directory/game/Hearthstone%3A%20Heroes%20of%20Warcraft).get(); 
    Elements streamers = doc.getElementsByClass("js-profile-link"); 

    for (Element streamer : streamers) { 
     i++; 
     System.out.println(i + "." + streamer.text()); 
     streamerwriter.println(i + "." + streamer.text()); 
    } 

    streamerwriter.close(); 
} 

ご協力いただければ幸いです。

+0

私にあなたの質問を編集してくださいforループの前にdocの内容を指定してください。これは期待される情報が含まれているかどうかを確認するだけです。これがあなたのコードにコンテンツが表示されない理由です。 – ishmaelMakitla

+0

さて、コードを少し変更しました。私の質問を編集してくれてありがとう。 – Chimichanga

+0

あなたが望んでいる部分がlazily.Louyによってロードされているためです。遅延リクエストを知り、jsoupによってそのURLを解析する必要があります。この質問を確認してください。 http://stackoverflow.com/questions/17407603/how-to-use-jsoup -in-site-that-has-lazyload-scrollloader-js – Sarkhan

答えて

0

あなたはウェブページを解析する必要はありません。ツイッチにはストリーマーを選択するAPIがあります。

https://streams.twitch.tv/kraken/streams?limit=20&offset=0&game=Hearthstone%3A+Heroes+of+Warcraft&broadcaster_language=&on_site=1

ので、あなたが解析しなければならないJSONデータあなたはので、あなたがlazily.Youロードされている解析したいパート怠惰loading.becauseのjsoupでストリーマが表示されていない理由を知りたい場合は

。その怠惰な要求を知っているし、私が見つけたと書いたjsoupでそのURLを解析しなければならない(APIけいれん)は

この質問をチェックしてみて下さい: how to use Jsoup in site that has lazyload scrollLoader.js

関連する問題