Android jSoup清理网页,但留下图像和换行符

Android jSoup清理网页,但留下图像和换行符,android,jsoup,Android,Jsoup,我试图使用jSoup在Android WebView中允许网页的阅读器模式 Document doc = Jsoup.parse(url,3000); String justTheText = doc.text(); 例如,把这个应用到CNN上,打印出每一个菜单,这样就不会真正对读者友好。我想保留标题和文字,而不是摆脱图像也。我需要以有序的方式呈现页面 我需要的是保留图像,但扔掉无关的东西,并在文本中保留新行。这必须是一些通用的,所以它可以在不同的页面上工作 如果我不能保留图像,必须将页面

我试图使用jSoup在Android WebView中允许网页的阅读器模式

 Document doc = Jsoup.parse(url,3000);
 String justTheText = doc.text();
例如,把这个应用到CNN上,打印出每一个菜单,这样就不会真正对读者友好。我想保留标题和文字,而不是摆脱图像也。我需要以有序的方式呈现页面

我需要的是保留图像,但扔掉无关的东西,并在文本中保留新行。这必须是一些通用的,所以它可以在不同的页面上工作


如果我不能保留图像,必须将页面显示为纯文本,至少我需要一种保留标题和换行符的方法。而且不要拉入无关的文本和链接等。

这确实不是一项简单的任务,尽管这是绝对可能的(iOS的阅读模式做得很好)

您需要首先找到一种方法来知道要过滤哪些元素,例如,将菜单省略掉。您可以通过查看标记名和/或类名并省略特定的标记/类来尝试这样做。 接下来,您要处理您想要包含的项目:获取包含文本的所有时间(并可能在每行后面添加

),包括图像,等等

下面是一些让您开始学习的内容(需要Java 8):

doc.body().getAllegements().stream()
.filter(elem->!elem.className().toLowerCase().matches(*(菜单|页眉|页脚|徽标|导航|搜索|链接|按钮| btn |广告)。*)
.forEach(元素->{
if(elem.hasText()){
result.append(elem.text()+“
”); } if(elem.tagName().equals(“img”)){ result.append(elem.toString()); } });