zoukankan      html  css  js  c++  java
  • 寒假学习(三)北京市政百姓信件分析

    首先,需要采集北京市政百姓信件内容,通过网络爬虫,找到有用的信息。

    网络爬虫由控制节点、爬虫节点、资源库构成。

    网络爬虫中可以有多个控制节点,每个控制节点下可以有多个爬虫节点,控制节点之间可以互相通信,同时,控制节点和其下的各爬虫节点之间也可以进行互相通信,属于同一个控制节点下的各爬虫节点间,亦可以互相通信。

    控制节点,也叫作爬虫的中央控制器,主要负责根据URL地址分配线程,并调用爬虫节点进行具体的爬行。

    爬虫节点会按照相关的算法,对网页进行具体的爬行,主要包括下载网页以及对网页的文本进行处理,爬行后,会将对应的爬行结果存储到对应的资源库中。

    WebMagic是一个简单灵活的Java爬虫框架。基于WebMagic,你可以快速开发出一个高效、易维护的爬虫。

    WebMagic的设计参考了业界最优秀的爬虫Scrapy,而实现则应用了HttpClient、Jsoup等Java世界最成熟的工具,目标就是做一个Java语言Web爬虫的教科书般的实现。

    import us.codecraft.webmagic.Page;  
    import us.codecraft.webmagic.Site;  
    import us.codecraft.webmagic.processor.PageProcessor;  
      
    public class Getgov implements PageProcessor {  
      
        @Override  
        public Site getSite() {  
            return null;  
        }  
      
        @Override  
        public void process(Page arg0) {  
        }  
    } 
    package my.webmagic;  
    import us.codecraft.webmagic.Page;  
    import us.codecraft.webmagic.Site;  
    import us.codecraft.webmagic.Spider;  
    import us.codecraft.webmagic.pipeline.FilePipeline;  
    import us.codecraft.webmagic.processor.PageProcessor;  
    import us.codecraft.webmagic.scheduler.FileCacheQueueScheduler;  
    public class Getgov implements PageProcessor {  
        private Site site = Site.me().setRetryTimes(3).setSleepTime(100);  
        public void process(Page page) {  
            page.putField("allhtml", page.getHtml().toString());  
            String urlstr null;  
            for (int i = 1; i < 2702; i++) {  
                urlstr = "http://rexian.beijing.gov.cn/default/com.web.index.moreNewLetterQuery.flow?PageCond/currentPage="  
                        + i + "&type=nextPage";  
                page.addTargetRequest(urlstr);  
                page.addTargetRequests(page.getHtml().links()  
                        .regex("(com.web.\w+.\w+.flow\?originalId=\w+)").all());  
            }  
        }  
        public Site getSite() {  
            return site;  
        }  
        public static void main(String[] args) {  
            Spider.create(new Getgov())  
                    .addUrl("http://rexian.beijing.gov.cn/default/com.web.index.moreNewLetterQuery.flow?type=firstPage")  
                    .addPipeline(new FilePipeline("/data/edu1"))  
                    .setScheduler(new FileCacheQueueScheduler("/data/edu1"))  
                    .thread(5)  
                    .run();  
        }  
    }  

  • 相关阅读:
    Install wget in Mac OS X Without Homebrew or MacPorts
    Embedding Lua in C: Using Lua from inside C.
    Lua 的数据结构
    Maintainable HashCode and Equals Using Apache Commons
    Multiples of 3 and 5
    Even Fibonacci numbers
    Eclipse Error: Unable to set localhost. This prevents creation of a GUID.
    Oracle中merge into的使用
    MERGE
    pl/sql tutorial
  • 原文地址:https://www.cnblogs.com/sonofdemon/p/12250106.html
Copyright © 2011-2022 走看看