问题描述
我需要使用Java中的Jsoup和/或正则表达式从网址中删除HTML标签。 到目前为止,我已经尝试了一些方法,使用javax.swing.text.html.HTMLEditorKit甚至Jsoup,但是我不能交换导入的java.io.FileReader。 导入java.io.InputStreamReader; 导入java.net.URL; 并使其成功运行。
我还可以做些什么?
这是我尝试过的代码**
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.net.URL;
import java.io.IOException;
import java.io.FileReader;
import java.io.Reader;
import org.jsoup.Jsoup;
public class WebTest {
private WebTest() {}
public static String extractText(Reader reader) throws IOException {
StringBuilder sb = new StringBuilder();
BufferedReader br = new BufferedReader(reader);
String line;
while ((line = br.readLine()) != null) {
sb.append(line);
}
String textOnly = Jsoup.parse(sb.toString()).text();
return textOnly;
}
public static void main(String[] args) throws Exception {
String filename = "/Users//Desktop/file4.csv";
String urltodownload = "http://www.amazon.com";
URL url = new URL(urltodownload);
BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
BufferedWriter bw = new BufferedWriter(new FileWriter(new File(filename)));
String document = "";
while (br.ready()) {
String line = br.readLine();
document += line + "\n";
System.out.println( line );
} bw.close();
String file = "/Users/Desktop/file4.csv";
FileReader reader = new FileReader(file);
System.out.println(WebTest.extractText(reader));
}
}
1楼
使用Jsoup
public static String htmlremoved(String html) {
return Jsoup.parse(html).text();
}
使用正则表达式String nohtml = YourUrlString.toString().replaceAll("\\\\<.*?>","");
2楼
好的,谢谢大家的贡献。
我所做的似乎解决了我的问题,这就是这个。
添加Jsoup.parse(String).text();
到String line = br.readLine()
的打印命令,例如System.out.println( Jsoup.parse(line).text());
然后这段代码将HTML标记删除。
当然,首先您必须声明方法public static String htmlremoved(String html) { return Jsoup.parse(html).text(); }
public static String htmlremoved(String html) { return Jsoup.parse(html).text(); }
。
您还可以添加Jsoup.parse(String).text();
代码到bw.write
。