在JAVA中使用Xpath解析HTML文件
我有一个Java代码,可以读取URL的源代码并保存到文件(source.html),现在从保存的页面中,我想使用XPath提取一些值。假设我想阅读price-在JAVA中使用Xpath解析HTML文件,java,xpath,web-scraping,html-content-extraction,htmlcleaner,Java,Xpath,Web Scraping,Html Content Extraction,Htmlcleaner,我有一个Java代码,可以读取URL的源代码并保存到文件(source.html),现在从保存的页面中,我想使用XPath提取一些值。假设我想阅读price-//div[@itemprop='price']//text() 如何进一步做到这一点,我将能够直接在保存的HTML页面中完成,或者我应该首先将其转换为XML文件,然后使用XPath。我听说过HTML清理器/解析器,我应该在这里使用它吗?请不要指向其他网站寻求答案。如果是这样的话,请把我带到一个地方,在那里我可以直接简单地上一课。修改下面的
//div[@itemprop='price']//text()
如何进一步做到这一点,我将能够直接在保存的HTML页面中完成,或者我应该首先将其转换为XML文件,然后使用XPath。我听说过HTML清理器/解析器,我应该在这里使用它吗?请不要指向其他网站寻求答案。如果是这样的话,请把我带到一个地方,在那里我可以直接简单地上一课。修改下面的代码将非常有用
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import org.jsoup.Jsoup;
public class jSoupContentRead {
@SuppressWarnings("resource")
public static void main(String[] args) throws IOException {
FileWriter FR = new FileWriter("source.html");
PrintWriter op = new PrintWriter(FR);
org.jsoup.nodes.Document doc = Jsoup.connect(
"http://itunes.apple.com/us/book/a-way-home/id982665320?mt=11")
.get();
op.write(doc.toString());
System.out.println(doc.toString());
}
}
通常(跨语言)XPath将应用于DOM结构。在php中,有一个标准过程:
我认为JAVA中应该有类似的东西。您使用的是JSoup。它的查询语言允许一些非常相似的东西,为什么要使用XPath?@realpoint-你是对的,但我更喜欢XPath,因为它对我来说非常容易使用。如果你真的“喜欢学习”,那么就按照@realpoint的建议学习JSoup,因为它是适合这项工作的工具。XPath很方便,并且有一些JSoup没有的高级功能。此外,我还可以在jsoup文档有限的net中获得很多关于xpath的帮助。有人能帮我举个例子吗。
“Xpath…有一些jsoup没有的高级函数……”
——比如?