用于Java的JTidy或Jsoup

tor*_*eff 6 java screen-scraping web-crawler web-scraping

最近我一直在使用BeautifulSoup在python中开发web scraper.现在我想知道Java中最喜欢哪些库.我做了一些搜索,主要是看到JTidy和JSoup.他们之间有什么区别?

Joã*_*lva 11

JTidy更常用于整理的HTML,即,固定格式不正确或错误的HTML,如没有结束的标记,例如,从<div><span>text</div><div><span>text</span></div.

JSoup,在另一方面,提供了一个全面的API来解析HTML 提取它的部分.它允许您使用jQuery之类的选择器来查找元素或DOM方法,等同于您使用JavaScript的元素或方法,例如getElementById.我说JSoup确实是BeautifulSoup的Java等价物.

例如,要使用JSoup提取Wikipedia文章的第一段,您可以使用以下内容:

String url = "http://en.wikipedia.org/wiki/Potato";
Document doc = Jsoup.connect(url).get();
Elements paragraphs = doc.select(".mw-content-ltr p");
String firstParagraph = paragraphs.first().text();
Run Code Online (Sandbox Code Playgroud)

或者从这个非常自己的问题中提取标题:

Document doc = Jsoup.connect("http://stackoverflow.com/questions/12439078/jtidy-or-jsoup-for-java").get();
String question = doc.select("#question-header a").text(); // JTidy or Jsoup for Java
Run Code Online (Sandbox Code Playgroud)

相当不错的API,嗯?:-)