如何像Java浏览器那样从网站下载HTML(自动记忆数据)

如何像Java浏览器那样从网站下载HTML(自动记忆数据),java,html,facebook,Java,Html,Facebook,好的,我想做的是从facebook上的Java代码下载HTML。 我知道如何做到这一点,当我想让它像我在浏览器中的查看页面源码那样下载HTML时,问题就来了,当我登录时,而不是登录fb页面 我知道我可以使用API,但我只想检查HTML中的一件事,它似乎太大了,无法包含和使用整个API 所以我想知道是否有一种简单的方法可以做到这一点(也许我应该先用我的凭证执行一些链接,尽管我不认为这是一种方法) 您可以通过从Urlconnection读取来实现这一点 import java.net.*;

好的,我想做的是从facebook上的Java代码下载HTML。 我知道如何做到这一点,当我想让它像我在浏览器中的
查看页面源码
那样下载HTML时,问题就来了,当我登录时,而不是登录fb页面

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

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

您可以通过从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()调用实际上将返回httpurlconction的一个实例,并将其转换为该实例&然后您将能够轻松地设置各种http头,例如用户代理


最后一点,你说可能需要一块饼干。你的代码不会处理cookies。要做到这一点,你需要使用cookie管理器,例如:

是的,正如我在你引用的那句话后的下一句中所写的,我知道怎么做。这不是问题。好的,请你详细说明一下好吗?当我想让它像我在浏览器中查看页面源代码一样下载HTML时,问题就来了?你到底在问什么@user3212350(很乐意帮助)。当我想下载HTML时,问题就来了,就像我登录时一样(当然我不是,它只是下载登录页面)。我不知道如何以编程方式登录,这样我就可以下载HTML,就像我登录我的网站之后一样Aswer@user3212350facebook肯定会使用cookies。所以一定要参考链接。
java URLConnectionReader > facebook.html(or any format)