Spiderman Java開源垂直爬蟲抓取示例【需求小複雜】

首先要說明的是,本文僅介紹了Spiderman解析 XML 的示例,Spiderman解析 HTML  也是差很少的原理,不過更考驗「爬蟲」的能力。 java

這個之後再發篇文章詳細說明 【 已經有了請點擊這裏】:) 在Github的spiderman-sample項目裏面有好幾個案例,能夠跑跑看。 json

這是Spiderman連接: http://www.oschina.net/p/spiderman

1.Spiderman是一個垂直領域的爬蟲,可用於抓取特定目標網頁的內容,而且解析爲所須要的業務數據,整個過程追求無需任何編碼就能實現,這樣帶來的好處是部署簡單,而且網頁內容變化能夠靈活應對。

2.本文演示所抓取的目標URL是:http://www.alldealsasia.com/feeds/xml 這是一個XML文件,提供了該網站全部活動的Deal
3.怎麼用Git+Maven搭建Spiderman使用這裏就不詳細說明了
4.直接看效果 ide

  • 這是目標網頁【一個xml頁面】

  • 爲了完成以上的目標,須要配置一個xml文件讓Spiderman根據目標執行

  • 最後來看看抓取以後的結果數據,我是在回調方法裏面寫入文件的:
    // 初始化蜘蛛
    Spiderman.init(new SpiderListener() {
        public void onNewUrls(Thread thread, Task task, Collection<String> newUrls) {}
        public void onDupRemoval(Thread currentThread, Task task, Collection<Task> validTasks) {}
        public void onNewTasks(Thread thread, Task task, Collection<Task> newTasks) {}
        public void onTargetPage(Thread thread, Task task, Page page) {}
        public void onInfo(Thread thread, String info) {}
        public void onError(Thread thread, String err, Exception e) {
            e.printStackTrace();
        }
        public void onParse(Thread thread, Task task, List<Map<String, Object>> models, int count) {
            String content = CommonUtil.toJson(models);
            try {
                FileUtil.writeFile(new File("d:/jsons/spiderman-result-"+count+".json"), content);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        public void onPojo(Thread thread, List<Object> pojo, int count){}
    });
    
    // 啓動蜘蛛
    Spiderman.start();
    		
    //運行30s
    Thread.sleep(CommonUtil.toSeconds("30s").longValue()*1000);
    		
    // 關閉蜘蛛
    Spiderman.stop();
    打開文件而且把文件內容進行json格式化:



待續... 網站

相關文章
相關標籤/搜索