我对使用Jsoup和Java进行html解析有点怀疑。
考虑这个html部分
<a href="/path/page1.html">Page1</a>
<a href="/joe/jeo.html">joe</a>
<a href="/path/page2.html">Page2</a>
<a href="/harry/harry.html">harry</a>
<a href="/mike/mike.html">mike</a>
<a href="/path/page3.html">Page3</a>
我需要使用Jsoup提取Page1,Page2和Page3。 页面唯一的共同点是href值中的“path”。 任何人都知道如何通过href值中的“包含”来选择文本?
谢谢!
答案 0 :(得分:0)
在选择器上使用正则表达式:
doc.select("a[href~=(?i)(path)]");
试试这个:
Document doc;
String userAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0";
try {
// need http protocol
doc = Jsoup.connect("http://domain.tld/page.html").userAgent(userAgent).get();
Elements links = doc.select("a[href~=(?i)(path)]");
for (Element link: links ) {
System.out.println("\nLink with path: " + link.toString());
}
} catch (IOException e) {
e.printStackTrace();
}