java - 如何在线从不完整的网页(仅限 HTML)获取 HTML 表格内容?

标签 java html web-scraping html-table jsoup

问题:如何通过Java获取HTML中的表格内容?
要求:必须是在线页面,而不是本地文件。

我想提取第一个主题的网址:

https://discussions.apple.com/community/ipad/using_ipad?view=discussions#/?page=3

我尝试使用以下代码来获取第 3 页的第一个主题

String url_page3 = "https://discussions.apple.com/community/ipad/using_ipad?view=discussions#/?page=3";
String key = "td.jive-table-cell-subject > a[href]";
Document doc = Jsoup.connect(url_page3).maxBodySize(0).timeout(0).get();
Element e = doc.select(key).first();
System.out.println(e.attr("abs:href");

它返回第 1 页上的第一个主题(即使我将连接的 URL 更改为第 4 页、第 5 页,...)

但是为什么会发生这种情况呢?还有其他方法可以尝试吗?

最佳答案

原因很简单。哈希标签对服务器来说并不重要,因此它只发送第一页。我猜其他页面是通过 AJAX 发送的,因此您需要检查网络流量才能找到该 url。您还可以阅读接下来的几页。

关于java - 如何在线从不完整的网页(仅限 HTML)获取 HTML 表格内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21656222/

相关文章:

javascript - casperjs评估不执行

java - 包 javax.xml.stream 可从多个模块 : <unnamed>, java.xml 访问

java - Spring Boot中如何使用ORDER BY?

php - 如何选择表单元素 "remember"?

ruby-on-rails - 如何从网站/博客中提取文章内容

Rvest 无法识别 css 选择器

java - 当我单击打开另一个框架的按钮时,如何将此框架与另一个框架链接?- Java

java - 在解析查询中初始化或修改变量

html - 适合屏幕的 iframe

javascript - 使用 Jquery 检查用户是否已将项目添加到列表中