我有一个Java代码,它可以读取URL的源代码并保存到文件(source.html)中,现在我想使用XPath从保存的页面中提取一些值。假设我想读取价格- //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中有一个标准过程:
- 获得html
- 使它成为一个有效的xml(可能是一个可选的步骤)
- 使其成为一个DOMDocument对象实例
- 使其成为DOMXPath对象实例
- 对这个DOMXPath实例应用xpath查询。参见php中的示例。