【问题标题】:Jsoup doesn't take the full html source code from the URL, Why ?Jsoup 没有从 URL 中获取完整的 html 源代码,为什么?
【发布时间】:2018-02-22 06:32:49
【问题描述】:

我正在尝试使用 Jsoup 从官方 Facebook 页面抓取视频链接。当我与 Jsoup 连接并尝试在连接后显示包含 HTML 代码的文档内容时,它会显示一部分 HTML 代码而不是完整代码。我什至使用了用户代理,但我仍然收到部分代码源代码源。 为什么当我从浏览器中正常单击以显示代码源时,它会显示带有 div、cmets 等的完整代码源,但使用 Jsoup 却不是?请帮忙

import org.jsoup.*;
import org.jsoup.nodes.Document;
import java.io.IOException;

  public class xxxx {

    public static void main(String args[]){
        print("running...");
        Document d2;
 
   
   
   
   try {   d2=Jsoup.connect("https://www.facebook.com/pg/EttounsiyaTV/videos/").userAgent("Mozilla/5.0 (X11; Ubuntu; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.167")
   .maxBodySize(0)
   .timeout(600000)
   .get();

 System.out.println(d2);
 
  } catch (IOException e) {
            e.printStackTrace();
        }
        print("done");
    }

    public static void print(String string) {
        System.out.println(string);
    }
}

【问题讨论】:

  • fb页面需要登录用户吗?您如何使用 jsoup 进行日志记录?
  • 你可能需要 selenium webdriver

标签: parsing web-scraping jsoup


【解决方案1】:

您无法使用 JSOUP 获取动态内容。但为了解释,我给你下面的细节。

这是您想要使用 JSOUP 获得的结果。

<video muted="1" height="462" width="820" preload="auto" style="" class="_ox1 _21y0" data-video-width="820" data-video-height="462" data-original-aspect-ratio="1.7777777777778" id="u_0_r" src="blob:https://www.facebook.com/b7dc6f31-ec0a-4df3-aac5-feb341dc8a29"></video>
问题

但是,如果您搜索页面源,您将无法看到使用 JSOUP 尝试获取的内容,这意味着您无法获取未使用 JSOUP 在页面源上呈现的内容,这些内容是使用 javascript 或任何其他源呈现的动态内容。为此,您必须使用 SELENIUM 或任何其他以编程方式模拟浏览器活动的工具。

【讨论】:

  • 非常感谢,感谢您的帮助
猜你喜欢
  • 2021-04-28
  • 1970-01-01
  • 1970-01-01
  • 2013-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-29
相关资源
最近更新 更多