java用jsoup获取出来的内容是乱的,在浏览器打开这个链接,打开开发者模式查看源码发现也是乱的,
原链接https://www.zhihu.com/market/paid_column/1178733193687175168/section/1178742849583083520
发现一个规律,只要是链接中含有“/market/paid_column/”的开发者模式打开都是乱文,这个该怎么处理呢,有哪位人才帮忙给看一看,感激不尽
首先,这个链接打开之后,我的浏览器并没有乱码。
其次,代码爬取之后也没乱码。
作为一名资深的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,才能正常查看文章。