我怎么能从网站下载HTML喜欢浏览器会(自动记住的数据)在Java



好的,我想做的是从Java代码中从facebook下载HTML。我知道如何做到这一点,问题来了,当我想要它下载HTML,我将在View page source在我的浏览器,当我登录而不是获得登录fb页面。

我知道我可以使用API,但我只想检查HTML中的一件事,它似乎太大了,无法包含和使用整个API。

所以我想知道是否有一种简单的方法来做到这一点(也许我应该先用我的凭据执行一些链接,尽管我不认为这是这样做的方式)。

  I want to do is to download HTML from facebook from JAVA code

你可以从Urlconnection中读取。

  import java.net.*;
    import java.io.*;
    public class URLConnectionReader {
        public static void main(String[] args) throws Exception {
            URL facebook = new URL("http://www.facebook.com/or any dir");
            URLConnection yc = facebook.openConnection();
            BufferedReader in = new BufferedReader(new InputStreamReader(
                                        yc.getInputStream()));
            String inputLine;
            while ((inputLine = in.readLine()) != null) 
                System.out.println(inputLine);
            in.close();
        }
    }

您可以输入任何url并获得该给定页面的源代码。

查看源代码或保存源代码。

java URLConnectionReader > facebook.html(or any format)

问题来了,当我想下载HTML,因为它将是如果我我已经登录了(当然我没有,它只是下载登录页面)。我不知道怎么用程序登录,所以我我可以在登录后下载HTML

首先要提醒的是,如果你没有得到这样做的直接许可,要小心,有问题的网站可能会在他们的服务条款中排除这一点。

要回答这个问题,网站拒绝登录的原因有很多很多。要成功地做到这一点,您需要尽可能接近浏览器处理事务的方式。要做到这一点,你需要看到一个真正的浏览器在做什么。

https更棘手,因为许多HTTP嗅探器无法处理它,但httpwatch声称它可以。检查HTTP事务,然后尝试复制它们。

你的url.openConnection()调用实际上会返回一个httpurlconnection的实例,并强制转换为&那么您就可以轻松地设置各种http头,例如User-Agent。

最后一点,你说可能需要一个cookie。您的代码不会处理cookie。要做到这一点,你需要使用cookie管理器,例如:参考这个例子

最新更新