htmlcleaner+xpath爬取

有兩個問題,記錄一下 :html

一、xpath以下格式(經過firebug下面的xpath插件得到的路徑):java

    

html/body/div[2]/div[1]/div[3]/ul/li/div/div/span/span[2]

此時htmlcleaner調用xpath查找元素的方法找不到該元素(肯定及確定該界面有這元素),將路徑修改成:node

    

/body/div[2]/div[1]/div[3]/ul/li/div/div/span/span[2]

就能夠爬取到了。lua

二、爬取元素的代碼:(記錄一下啦)url

Document doc = getDocument(url);
		if(doc!=null && doc.hasText()){
//			System.out.println(doc.html());
		    String document = formatContext(doc.html());
		    System.out.println(document);
		    
			TagNode node = cleaner.clean(document);

			Object[] ns = null;
			try {
				ns = node.evaluateXPath(xpath);
			} catch (XPatherException e) {
				e.printStackTrace();
			}
			if (ns.length > 0) {
				for (Object on : ns) {
					TagNode n = (TagNode) on;
                               //下面的兩個方法均可以取到標籤裏面的內容
                                String text = cleaner.getInnerHtml(n);
			     	System.out.println(text);
					System.out.println(url + n.getText().toString());

				}
			} else {
				return null;// 規則不對,返回空
			}
相關文章
相關標籤/搜索