【问题标题】:How to use HTML Parser to get Facebook source from origin如何使用 HTML Parser 从源获取 Facebook 源
【发布时间】:2015-10-10 14:47:25
【问题描述】:

当我手动尝试进入用户页面时,我试图从 facebook 上的用户那里获取 Facebook 源代码,它会为我提供所有数据。

html中这行代码好像有区别:

meta name="referrer" content="origin-when-crossorigin" id="meta_referrer"

当程序获得 html 时,给出的内容如下:

meta name="referrer" content="default" id="meta_referrer">

这是代码,我使用的是 Java 库 Jsoup

public void test() throws IOException {     

String html = Jsoup.connect("https://www.facebook.com/*adduseridhere*").get().html(); 

System.out.println(html);   }

所以我的问题是,我的程序是否可以像我的浏览器在收集 html 数据时一样运行?

【问题讨论】:

  • 抓取他们的 HTML 源代码违反 Facebook 的 ToS。

标签: html facebook parsing html-parsing jsoup


【解决方案1】:

您必须发送一些标题数据,如下所示。

首先看看是什么将您的浏览器从浏览器发送到该链接,然后尝试使用 jsoup 实现它。

正如我在您的示例中看到的,您没有发送任何标题数据,因此 facebook 不接受来自浏览器的数据

Document doc = Jsoup
        .connect(url.trim())
        .timeout(3000)
        .header("Host", "someip")
        .header("Connection", "keep-alive")
        .header("Content-Length", "111")
        .header("Cache-Control", "max-age=0")
        .header("Accept",
                "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8")
        .header("User-Agent",
                "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36")
        .header("Content-Type", "application/x-www-form-urlencoded")
        .header("Referer", url.trim())
        .header("Accept-Encoding", "gzip,deflate,sdch")
        .header("Accept-Language", "en-US,en;q=0.8,ru;q=0.6")
        .userAgent("Mozilla")
        .get();

【讨论】:

    猜你喜欢
    • 2014-11-25
    • 1970-01-01
    • 2012-04-22
    • 1970-01-01
    • 2015-04-30
    • 2010-11-24
    • 2018-02-15
    • 2020-07-24
    • 1970-01-01
    相关资源
    最近更新 更多