从HTML Java提取文本

前端之家收集整理的这篇文章主要介绍了从HTML Java提取文本前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开发一个下载HTML页面的程序,然后选择一些信息并将其写入另一个文件.

我想提取段落标签之间的int信息,但我只能得到段落的一行.我的代码如下:

  1. FileReader fileReader = new FileReader(file);
  2. BufferedReader buffRd = new BufferedReader(fileReader);
  3. BufferedWriter out = new BufferedWriter(new FileWriter(newFile.txt));
  4. String s;
  5.  
  6. while ((s = br.readLine()) !=null) {
  7. if(s.contains("<p>")) {
  8. try {
  9. out.write(s);
  10. } catch (IOException e) {
  11. }
  12. }
  13. }

我试图添加另一个while循环,这将告诉程序继续写入文件,直到该行包含< / p>标签,说

  1. while ((s = br.readLine()) !=null) {
  2. if(s.contains("<p>")) {
  3. while(!s.contains("</p>") {
  4. try {
  5. out.write(s);
  6. } catch (IOException e) {
  7. }
  8. }
  9. }
  10. }

但这不行.有人可以帮忙.

解决方法

jsoup

我真正喜欢使用的另一个html解析器是jsoup.你可以得到所有的< p>元素在2行代码中.

  1. Document doc = Jsoup.connect("http://en.wikipedia.org/").get();
  2. Elements ps = doc.select("p");

然后再写一个文件到另一个文件

  1. out.write(ps.text()); //it will append all of the p elements together in one long string

或者如果您希望它们在不同的行上,您可以遍历元素并单独写入它们.

猜你在找的HTML相关文章