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

img

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

首先,这个链接打开之后,我的浏览器并没有乱码。
其次,代码爬取之后也没乱码。

img

作为一名资深的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,才能正常查看文章。