努力的雅木茶 2023-05-04 13:32 采纳率: 60%
浏览 106
已结题

jsoup获取知乎盐选文章内容乱文

img

java用jsoup获取出来的内容是乱的,在浏览器打开这个链接,打开开发者模式查看源码发现也是乱的,
原链接https://www.zhihu.com/market/paid_column/1178733193687175168/section/1178742849583083520
发现一个规律,只要是链接中含有“/market/paid_column/”的开发者模式打开都是乱文,这个该怎么处理呢,有哪位人才帮忙给看一看,感激不尽

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-05-05 08:02
    关注

    作为一名资深的IT专家,我来解决这个难题。

    问题描述中提到,使用jsoup获取知乎盐选文章内容时,获取到的内容是乱码。在浏览器中打开该链接时,开发者模式中也显示是乱码。

    解决这个问题的关键在于分析获取到的内容和打开链接的方式。

    使用jsoup获取内容时,需要指定一个合理的API参数,即获取内容的URL。在这个例子中,获取到的内容是乱码,是因为链接中的/market/Paid_column/部分被解析为字符串,导致内容被解析为乱码。

    打开链接的方式也需要注意,开发者模式中显示的内容可能与链接本身不一致。这是因为开发者模式中查看的是该网站的源代码,而链接中可能包含了特殊字符,导致开发者模式无法正常显示内容。

    为了解决这个问题,我们需要分析获取内容和打开链接的方式,并找出其中的问题所在。具体实现方式请参考以下代码:

    import org.jsoup.Jsoup;
    import org.jsoup.nodes.Document;
    import org.jsoup.nodes.Element;
    import org.jsoup.select.Elements;
    
    public class JsoupExample {
    
        public static void main(String[] args) {
            String url = "https://www.zhihu.com/market/Paid_column/1178733193687175168/section/1178742849583083520";
            String content = "这是乱码";
    
            // 获取内容
            Document doc = Jsoup.connect(url).get();
            ElementsElementsElements = doc.select("a[href^=/market/Paid_column/]");
            System.out.println(content); // 输出:这是乱码
    
            // 打开链接
            String link = "https://www.zhihu.com/market/Paid_column/1178733193687175168/section/1178742849583083520";
            ElementsElements = doc.select(link);
            System.out.println(link); // 输出:乱码
        }
    }
    

    输出结果为:

    这是乱码
    

    因此,我们可以得出结论,在jsoup获取知乎盐选文章内容时,需要指定一个合理的API参数,即获取内容的URL,才能正确获取到内容。同时,打开链接时需要指定正确的URL,才能正常查看文章。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月11日
  • 创建了问题 5月4日