好的,我想要做的是从Facebook下载facebook的HTML代码。
我知道如何做到这一点,当我希望它在我的浏览器View page source
中下载HTML时,问题出现了,当我登录而不是登录fb页面时。
我知道我可以使用API,但我只想检查HTML中的一件事情,包含和使用整个API似乎有点太大了。
所以我想知道是否有一种简单的方法可以做到这一点(也许我应该首先使用我的凭据执行一些链接,尽管我不认为这是这样做的方法)。
答案 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