java爬虫,使用选择器语法来查找元素可以使用Element.select(String selector) 和 Elements.select(String selector) 方法实现。
File input = new File("/input.html");
Document doc = Jsoup.parse(input, "UTF-8", "http://example.com/");
//带有href属性的a元素
Elements links = doc.select("a[href]");
//扩展名为.png的图片
Elements pngs = doc.select("img[src$=.png]");
//class等于j_joblist的div标签
Element masthead = doc.select("div.j_joblist").first();
//在h1元素之后的a元素
Elements resultLinks = doc.select("h1.r > a");
Selector选择器组合使用
(1)el#id: 元素+ID,比如: div#logo
(2)el.class: 元素+class,比如: div.masthead
(3)el[attr]: 元素+class,比如: a[href]
(4)任意组合,比如:a[href].highlight
ancestor child: 查找某个元素下子元素,比如:可以用.body p 查找在"body"元素下的所有 p元素
parent > child: 查找某个父元素下的直接子元素,比如:可以用div.content > p 查找 p 元素,也可以用body > * 查找body标签下所有直接子元素
siblingA + siblingB: 查找在A元素之前第一个同级元素B,比如:div.head + div
siblingA ~ siblingX: 查找A元素之前的同级X元素,比如:h1 ~ p
el, el, el:多个选择器组合,查找匹配任一选择器的唯一元素,例如:div.masthead, div.logo