使用 Jsoup 的连接方法连接到特定 URL 时出现问题
Problem connecting to a specific URL with Jsoup's connect method
首先,Jsoup的connect方法可能没有问题;我的担心可能是由于对 Document 的 html() 方法的误解,该方法继承自 Element.
我的问题的重点是从特定的 URL 中提取信息,但是由于 Document 的 html() 方法当前返回的字符串,我担心 Jsoup 的 connect() 方法未连接到指定的 URL,而是连接到网站的通用 URL。
这是特定的 URL 我希望我的程序连接到:
http://redditsearch.io/?term=&dataviz=false&aggs=false&subreddits=&searchtype=posts&search=true&start=1587355200&end=1587441600&size=100
但我认为它只是连接到该网站的通用 URL:
http://redditsearch.io/
我认为这是因为文档的 html() 方法返回的字符串:
Document doc = Jsoup.connect("http://redditsearch.io/?term=&dataviz=false&aggs=false&subreddits=&searchtype=posts&search=true&start=1587355200&end=1587441600&size=100").get();
String html = doc.html();
System.out.println(html);
它打印了一大堆 HTML 所以我只会和你们分享它的相关方面(请记住,以下文本是从 Document 的 html() 方法返回的) :
<div id="results-container" class="data-display">
<div id="posts" class="results"></div>
<div id="comments" class="results"></div>
</div>
在我的浏览器检查器 (firefox) 中 HTML 到这个特定 URL 的这方面看起来像这样(请记住,Document 的 html 不会返回以下文本() 方法,而是由检查器在我的浏览器中显示):
<div id="results-container" class="data-display">
<div id="posts" class="results"></div>
<div class="submission"...> </div> (first line under "posts")
...
<div class="submission"...> </div> (Nth line under "posts")
<div id="comments" class="results"></div>
</div>
意味着当我将浏览器连接到特定的 URL 时,div id="posts" 标记下有多行;但是,当我将浏览器的检查器连接到通用 URL "redditsearch.io" 时,浏览器的检查器中该标签下没有任何行(即 HTML 的这一方面看起来就像第一个 HTML当我的浏览器连接到通用 URL 时,在我的检查器中给出的示例。这就是为什么我相信我的程序正在连接到通用 URL,即使我使用特定的 URL 作为参数。
另一点可能是 "submission" div 是通过浏览器中的 JavaScript 添加的。
要检查这一点,请在浏览器中关闭 JavaScript(例如使用 NoScript 插件)或在开发人员控制台的网络选项卡中检查第一个返回的 html 文件。
首先,Jsoup的connect方法可能没有问题;我的担心可能是由于对 Document 的 html() 方法的误解,该方法继承自 Element.
我的问题的重点是从特定的 URL 中提取信息,但是由于 Document 的 html() 方法当前返回的字符串,我担心 Jsoup 的 connect() 方法未连接到指定的 URL,而是连接到网站的通用 URL。
这是特定的 URL 我希望我的程序连接到: http://redditsearch.io/?term=&dataviz=false&aggs=false&subreddits=&searchtype=posts&search=true&start=1587355200&end=1587441600&size=100
但我认为它只是连接到该网站的通用 URL: http://redditsearch.io/
我认为这是因为文档的 html() 方法返回的字符串:
Document doc = Jsoup.connect("http://redditsearch.io/?term=&dataviz=false&aggs=false&subreddits=&searchtype=posts&search=true&start=1587355200&end=1587441600&size=100").get();
String html = doc.html();
System.out.println(html);
它打印了一大堆 HTML 所以我只会和你们分享它的相关方面(请记住,以下文本是从 Document 的 html() 方法返回的) :
<div id="results-container" class="data-display">
<div id="posts" class="results"></div>
<div id="comments" class="results"></div>
</div>
在我的浏览器检查器 (firefox) 中 HTML 到这个特定 URL 的这方面看起来像这样(请记住,Document 的 html 不会返回以下文本() 方法,而是由检查器在我的浏览器中显示):
<div id="results-container" class="data-display">
<div id="posts" class="results"></div>
<div class="submission"...> </div> (first line under "posts")
...
<div class="submission"...> </div> (Nth line under "posts")
<div id="comments" class="results"></div>
</div>
意味着当我将浏览器连接到特定的 URL 时,div id="posts" 标记下有多行;但是,当我将浏览器的检查器连接到通用 URL "redditsearch.io" 时,浏览器的检查器中该标签下没有任何行(即 HTML 的这一方面看起来就像第一个 HTML当我的浏览器连接到通用 URL 时,在我的检查器中给出的示例。这就是为什么我相信我的程序正在连接到通用 URL,即使我使用特定的 URL 作为参数。
另一点可能是 "submission" div 是通过浏览器中的 JavaScript 添加的。
要检查这一点,请在浏览器中关闭 JavaScript(例如使用 NoScript 插件)或在开发人员控制台的网络选项卡中检查第一个返回的 html 文件。