如何保存所有网页,包括.css .js?

时间:2015-08-05 12:47:17

标签: android android-webview jsoup androidhttpclient

我想通过编程方式保存包括.css .js在内的所有网页。 到目前为止,我尝试了html get方法和jsoup , webview content,但所有这些方法都无法用css和js保存所有页面。这些方法只保存WEB页面的html部分。当我保存所有页面时,我想离线打开它。

提前致谢

2 个答案:

答案 0 :(得分:2)

您必须获取html,解析它并获取资源的URL,然后也请求这些URL。

public class Stack {

    private static final String USER_AGENT = "";
    private static final String INITIAL_URL = "";

    public static void main(String args[]) throws Exception {
        Document doc = Jsoup
                        .connect(INITIAL_URL)
                        .userAgent(USER_AGENT)
                        .get();

        Elements scripts = doc.getElementsByTag("script");
        Elements css     = doc.getElementsByTag("link");

        for(Element s : scripts) {
            String url = s.absUrl("src");
            if(!url.isEmpty()) {
                System.out.println(url);
                Document docScript = Jsoup
                                        .connect(url)
                                        .userAgent(USER_AGENT)
                                        .ignoreContentType(true)
                                        .get();

                System.out.println(docScript);
                System.out.println("--------------------------------------------");
            }
        }

        for(Element c : css) {
            String url = c.absUrl("href");
            String rel = c.attr("rel") == null ? "" : c.attr("rel");
            if(!url.isEmpty() && rel.equals("stylesheet")) {
                System.out.println(url);
                Document docScript = Jsoup
                                        .connect(url)
                                        .userAgent(USER_AGENT)
                                        .ignoreContentType(true)
                                        .get();
                System.out.println(docScript);
                System.out.println("--------------------------------------------");
            }
        }
    }
}

答案 1 :(得分:0)

我有类似的问题...... 使用此代码,我们可以获得图像,.css,.js。但是一些html内容仍然缺失。 例如,当我们通过chrome保存网页时,有2个选项。

  1. 完整的HTML
  2. 仅限html
  3. 出于.css,.js,.php ......“完整的html”包含的元素多于“仅html”。要求是在第一个选项中像chrome一样完整下载html。