【问题标题】:Unable to fetch the text from the div, Although i getting that content in response无法从 div 中获取文本,尽管我得到了该内容作为响应
【发布时间】:2017-10-30 11:07:26
【问题描述】:

无法从 div 中获取文本...使用下面的代码,不确定是什么问题

try {
    connection =  new URL("https://en-gb.facebook.com/Aeysunnna/videos/265359950651320/")
        .openConnection();
    Scanner scanner = new Scanner(connection.getInputStream(),"UTF-8");
    scanner.useDelimiter("\\A");
    content = scanner.next();
} catch (Exception ex) {
    ex.printStackTrace();
    System.out.println("error");
}

Document doc = Jsoup.parse(content);
Thread.sleep(10000);
Elements elements = doc.select("div._1t6k");
System.out.println(elements.text());

【问题讨论】:

  • 看来您使用的是非默认 API (JSoup)。如果是这样,请始终在您的问题中说明并使用适当的标签。
  • 如果用户回答了您的问题,请同时接受他的回答 (Accepting Answers: How does it work?)。如果没有,请说明还有哪些未解决的问题,这是 StackOverflow 的关键部分,非常感谢。

标签: java jsoup


【解决方案1】:

这可能是因为您的 Java 浏览器 没有登录 Facebook。如果您没有登录,除了登录页面,您什么也看不到。因此您无法阅读div 的内容,您当前处于起始页面。

尝试打印您获得的全部内容并检查它是否真的是起始页。


您可以在这里找到深入的解释:Finding a word in a web page using java

如图所示,您可能不会找到解决此问题的简单方法


另请注意,在不使用自己的 API 的情况下抓取 Facebook违反他们的服务条款

【讨论】:

  • 我能够在 HTML 解析后的内容中看到该 div,但仍然无法获取该 div 的文本。
  • 那么文档doc 包含div 及其所有内容在您打印时?但是doc.select 没有选中?请通过编辑您的问题显示相关内容。您的选择器可能不正确或类似情况。
  • 是的 doc 包含那个 div 但是当我使用 Elements 元素 = doc.select("div._1t6k");它返回元素大小为零
  • 我在 HTML 解析后也得到了这个 div
    7 M Views
猜你喜欢
  • 2020-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-09
  • 2020-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多