Jsoup没有从URL中获取完整的html源代码,为什么?

时间:2018-02-22 06:32:50

标签: parsing web-scraping jsoup

我正在尝试使用Jsoup从官方Facebook页面抓取视频链接。当我连接Jsoup并尝试在连接后显示包含HTML代码的文档内容时,它会显示一部分HTML代码而不是完整代码。我甚至使用了用户代理,但我仍然收到一部分代码源代码源。 为什么当我正常地从浏览器右键单击以显示代码源时,它显示完整的一个带有div,注释等但是使用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);
    }
}

1 个答案:

答案 0 :(得分: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>
&#13;
&#13;
&#13; enter image description here 问题

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