【问题标题】:Java BufferedReader doesn't load full content of a webpageJava BufferedReader 不加载网页的全部内容
【发布时间】:2014-11-03 17:06:57
【问题描述】:

您好,这是我在这里的第一个问题,我想知道是否有人可以解决我的问题,我正在尝试在所有内容加载后获取网页的全部内容。例如,我有一个网站在网页加载后会提取信息,就像一个使用 ajax 从服务器请求数据的搜索页面。当我运行代码时,我得到的只是网页的基本外壳,而搜索结果中什么也没有。

    URL url = new URL("a_url");
    BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
    String inputLine;
    while ((inputLine = in.readLine()) != null)
        System.out.println(inputLine);

    in.close();

我正在为 torrent 搜索pirate bay,因为我正在测试 java 中磁铁下载的使用,当我尝试收集磁铁链接时,“inputLine”不打印任何我搜索过的内容, 仅在添加搜索之前网站包含的内容。任何帮助将不胜感激,谢谢

【问题讨论】:

  • 您正在加载的是页面的来源。如果在通过 Javascript 加载页面后正在加载内容,则该内容将不会出现在该输入流中。
  • 是的,我明白这就是它正在做的事情,我希望有一个解决方案能够在返回流输出数据之前等待其他数据被加载

标签: java url webpage bufferedreader


【解决方案1】:

使用您的作品,您正在向服务器请求页面并显示给 sysout。

页面加载后提取的每个内容都是由某些 javascript 请求的。 javascript 由 Web 浏览器解释。如果你想得到相同的结果,你应该像浏览器那样解释 javascript。我认为jsoup有这样的功能(从未测试过)。

其他解决方案:javascript 通过 HTTP API 访问服务器。尝试从您的 java 代码访问某些 API,而不请求主页。

【讨论】:

  • 我知道发生了什么,但正如我所说,我正在寻找解决方案,而对于其他解决方案,我已经尝试在网页上使用 get 方法来查看内容是否由 php 驱动,但是发生相同的结果,所以我假设它是 java 脚本,如果有帮助,我通过使用 HttpUrlConnection 类来做到这一点,感谢 JSoup 的想法,我会看看它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多