首页 > 解决方案 > 如果我将加密的 html 文件解析为字符串,我能以某种方式从中获取文本吗?

问题描述

    import java.net.*;
    import java.io.*;
    import org.jsoup.Jsoup;
    import org.jsoup.helper.Validate;
    import org.jsoup.nodes.Document;
    import org.jsoup.nodes.Element;
    import org.jsoup.select.Elements;


    public class UrlReaderTest {
        public static void main(String[] args) throws Exception {

        URL url = new URL("https://www.amazon.com/");
        String s = null;
        StringBuilder contentBuilder = new StringBuilder();
        try {
            BufferedReader in = new BufferedReader(new 
            InputStreamReader(url.openStream())); 
            String str;
            while ((str = in.readLine()) != null) {
                contentBuilder.append(str);
            }
            in.close();
        } catch (IOException e) {
            System.err.println("Error");

        }

        s = contentBuilder.toString();
        Document document = Jsoup.parse(s);


        System.out.println(document.text());


        }
    }

我得到的主要有这样的符号:Η1?0 Π??0ή=tθ Jr?/β@Q? l?r{ΪεI/ΉΟ~νJ?j?Ά-??ΙiLs?YdHλ²ύ?α?η?ογV"ηw[:?0??νSQψyθ?*²?γpI???²ρνl???2JμΚ?ΣS? Αl4ςRΛ\KR545υ?SK

我能做些什么来将其转换为我可以使用的形式吗?我在网上找不到具体的东西。

编辑:我具体想要的是解密该信息。例如,我想要的是能够从 facebook 搜索它的事件页面中获取文本以找到我想要的关键字并在其他地方使用这些关键字。

标签: javahtmlencryption

解决方案


正如@tmadam 在他的评论中指出的那样,问题在于来自流的响应被压缩(压缩)。所以,如果你想从 URL 流中读取它,你需要通过一个GZIPInputStreambefore InputStreamReader(见这个答案)。或者,正如@tmadam 建议的那样,您可以使用 Jsoup 的内置connect()方法:

import java.io.IOException;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

public class UrlReaderTest {
  public static void main(String[] args) {
    System.out.println(System.getProperty("java.classpath"));
    try {
      Document doc = Jsoup.connect("https://www.amazon.com").get();
      System.out.print(doc.text());
    }
    catch (IOException e) {
      System.err.println("Error");
    }

  }
}

推荐阅读