背景需求:
采集和讯网的财经人物,url为:http://renwu.hexun.com/,采集人物名称然后保存。
思路:
基于dom4j采集,根据url规则遍历获取,直到没有人物数据,基于xpath解析出最终的人物名称。
实现:
private static void getRWData(Set<String> set) throws Exception {
String xpath = "/*[name()='HTML']/*[name()='BODY']/*[name()='DIV']/*[name()='DIV']/*[name()='DIV']/*[name()='DIV']/*[name()='DIV']/*[name()='DIV']/*[name()='UL']/*[name()='LI']/*[name()='A']";
DOMParser parser = new DOMParser();
for (int i = 1; i < 10000; i++) {
parser.parse("http://renwu.hexun.com/search.aspx?z=All&Filter=All&page="+i);
DOMReader domReader = new DOMReader();
Document document = domReader.read(parser.getDocument());
Element root = document.getRootElement();
List<Node> nodes = root.selectNodes(xpath);
if(nodes.isEmpty()){
return;
}
for (Node node : nodes) {
set.add(node.getText());
}
}
}
保存在Set中供后期使用