WebMagic(二)----抓取CSDN博客、并打印

新建一个Maven项目、在pom文件中加入WebMagic必须的一些jar包.


测试类:


[html]  view plain  copy
  1. public class App implements PageProcessor  
  2. {  
  3.     private Site site = Site.me().setSleepTime(1);  
  4.     int temp=1;  
  5.       
  6.       
  7.     //执行这个main方法,即可在控制台看到抓取结果。webmagic默认有3秒抓取间隔,请耐心等待。  
  8.     public static void main( String[] args )  
  9.     {  
  10.         //Spider是爬虫的入口类,addurl为入口url  
  11.         Spider oschinaSpider = Spider.create(new App()).addUrl("http://blog.csdn.net/CHENYUFENG1991/article/list/1")  
  12.                 //Pipeline是结果输出和持久化的接口,这里ConsolePipeline表示结果输出到控制台  
  13.                 .addPipeline(new ConsolePipeline());  
  14.         try {  
  15.             //添加到JMT监控中  
  16.             SpiderMonitor.instance().register(oschinaSpider);  
  17.             //设置线程数  
  18.             //oschinaSpider.thread(5);  
  19.             oschinaSpider.run();  
  20.         } catch (JMException e) {  
  21.             e.printStackTrace();  
  22.         }   
  23.     }  
  24.   
  25.     //process(过程)  
  26.     public void process(Page page) {  
  27.           
  28.         //通过page.putField()来保存抽取结果  
  29.         //page.getHtml().xpath()则是按照某个规则对结果进行抽取,这里抽取支持链式调用  
  30.         List<String> pages=page.getHtml().xpath("[@class='pagelist']").links().all();  
  31.         if (pages.size()>5) {  
  32.             pages.remove(pages.size()-1);  
  33.         }  
  34.         page.addTargetRequests(pages);//用于获取所有满足"(http://blog\\.csdn\\.net/u012012240/article/month/2016/08/\\d+)"这个正则表达式的链接  
  35.         //区分是列表页面还是信息页面  
  36.         if (page.getUrl().regex("article/list").match()) {  
  37.             List<String> links = page.getHtml().xpath("[@class='link_title']").links().regex("http://blog\\.csdn\\.net/chenyufeng1991/article/details/\\d+").all();  
  38.             //通过page.addTargetRequests()方法来增加要抓取的URL  
  39.             page.addTargetRequests(links);    
  40.         }else {  
  41.             System.out.println("记录数:"+temp++);  
  42.             page.putField("title", page.getHtml().xpath("//[@class='link_title']/a/text()").toString());  
  43.         }  
  44.           
  45.     }  
  46.   
  47.     public Site getSite() {  
  48.         return site;  
  49.     }  
  50. }  

运行结果为:




完整的demo: http://download.csdn.net/detail/u011781521/9672508

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值