Jsoup,java,android 工作室 - 无结果

Jsoup, java, android studio - no results

我目前正在 android 工作室编写 android 应用程序。我想连接 gog.com 并搜索特定游戏。我用 steam 做了这个,效果很好。当我想在 https://www.gog.com/games?page=1&search=game_title&sort=popularity 搜索游戏时,它不起作用。

我的一段代码:

String search ="https://www.gog.com/games?page=1&search=cyberpunk&sort=popularity";
Document doc = Jsoup.connect(search).get();
Elements titles = doc.getElementsByClass("product-tile__title");
for(Element title: titles){
    txt = title.text();
    Log.i("My_title", txt);
}

我默认写了"cyberpunk"。这个 link 在浏览器中工作,但是当我使用 Jsoup 时相同 link returns "No results found"。 cookie/user-agent/language 有问题吗?

好吧,你是对的,你的代码应该可以工作,但在这种特殊情况下它不会工作。

原因是如果您在浏览器上禁用 javascript 并发出此 GET 请求 https://www.gog.com/games?page=1&search=cyberpunk&sort=popularity 您将看到页面不会加载,原因是因为这些 html 元素由 javascript 代码构建或加载。

所以在这种情况下,您将不得不解析您在响应中收到的 json,而不是使用 JSOUP

结论

因为 JSOUP 不能 运行 javascript 因为它不是网络浏览器,所以在这种情况下您将无法解析 HTML 响应,而是解析 JSON 在 HTML 响应中。