Jsoup没有在网站上看到一些文字

时间:2016-07-19 17:27:29

标签: java jsoup twitch

目前我正在制作一个程序(用Java)从给定的URL e.g.抓取所有拖曳(视频游戏流媒体网站)上的流媒体,并使用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();
}

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

你不需要解析网页。因为抽搐有api来选择飘带。

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

所以你应该解析json数据

如果你想知道为什么你不会因为延迟加载而在jsoup中看到飘带。因为那个你要解析的部分是懒惰加载的。你应该知道懒惰的请求并解析我发现的jsoup的url并写下来。(twitch api)

请检查此问题: how to use Jsoup in site that has lazyload scrollLoader.js