我如何从网站上下载HTML,就像Java中的浏览器(autoremembered data)一样

时间:2014-07-26 10:30:06

标签: java html facebook

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

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

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

1 个答案:

答案 0 :(得分:1)

  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();
        }
    }

您可以输入任何网址并获取该给定网页的源代码。

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

java URLConnectionReader > facebook.html(or any format)
  

如果我想下载HTML,问题就出现了   登录(但当然我不是,它只是下载登录   页)。而且我不知道如何以某种方式登录,以便我   可以下载我登录后的HTML

首先要注意的是,如果您没有直接许可,请注意,相关网站可能会在服务条款中排除这一点。

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

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

你的url.openConnection()调用实际上会返回一个HTTPURLConnction的实例,强制转换为&然后,您将能够轻松设置各种http标头,例如User-Agent。

最后一点,你说可能需要一个cookie。您的代码不会处理cookie。为此,您需要使用cookie管理器,例如:refer this for example