webMagic爬虫抓取某个博客全部文章名称
2016-09-24 14:51
405 查看
demo下载地址:点击打开链接
官方文档:点击打开链接
主要类:
官方文档:点击打开链接
主要类:
package testMagic; import java.util.List; import javax.management.JMException; import us.codecraft.webmagic.Page; import us.codecraft.webmagic.Site; import us.codecraft.webmagic.Spider; import us.codecraft.webmagic.monitor.SpiderMonitor; import us.codecraft.webmagic.pipeline.ConsolePipeline; import us.codecraft.webmagic.processor.PageProcessor; /** * PageProcessor是webmagic-core的一部分,定制一个PageProcessor即可实现自己的爬虫逻辑。 * 以下是抓取csdn博客的一段代码 */ public class OschinaBlogPageProcesser implements PageProcessor { private Site site = Site.me().setSleepTime(1); public Site getSite() { return site; } int temp=1; //process(过程) public void process(Page page) { //通过page.putField()来保存抽取结果 //page.getHtml().xpath()则是按照某个规则对结果进行抽取,这里抽取支持链式调用 List<String> pages=page.getHtml().xpath("[@class='pagelist']").links().all(); if (pages.size()>5) { pages.remove(pages.size()-1); } page.addTargetRequests(pages);//用于获取所有满足"(http://blog\\.csdn\\.net/u012012240/article/month/2016/08/\\d+)"这个正则表达式的链接 //区分是列表页面还是信息页面 if (page.getUrl().regex("article/list").match()) { List<String> links = page.getHtml().xpath("[@class='link_title']").links().regex("http://blog\\.csdn\\.net/chenyufeng1991/article/details/\\d+").all(); //通过page.addTargetRequests()方法来增加要抓取的URL page.addTargetRequests(links); }else { System.out.println("记录数:"+temp++); page.putField("title", page.getHtml().xpath("//[@class='link_title']/a/text()").toString()); } } //执行这个main方法,即可在控制台看到抓取结果。webmagic默认有3秒抓取间隔,请耐心等待。 public static void main(String[] args) { //Spider是爬虫的入口类,addurl为入口url Spider oschinaSpider = Spider.create(new OschinaBlogPageProcesser()).addUrl("http://blog.csdn.net/CHENYUFENG1991/article/list/1") //Pipeline是结果输出和持久化的接口,这里ConsolePipeline表示结果输出到控制台 .addPipeline(new ConsolePipeline()); try { //添加到JMT监控中 SpiderMonitor.instance().register(oschinaSpider); //设置线程数 //oschinaSpider.thread(5); oschinaSpider.run(); } catch (JMException e) { e.printStackTrace(); } } }
相关文章推荐
- python爬虫之python2.7.8抓取csdn博客文章
- [Python学习] 简单网络爬虫抓取博客文章及思想介绍
- [Python学习] 简单网络爬虫抓取博客文章及思想介绍
- Hello Python!用python写一个抓取CSDN博客文章的简单爬虫
- [js高手之路]Node.js实现简易的爬虫-抓取博客所有文章列表信息
- 爬虫入门Demo(一)---抓取博客的文章标题和链接
- python爬虫抓取51cto博客大牛的文章保存到MySQL数据库
- [Python学习] 简单网络爬虫抓取博客文章及思想介绍
- [js高手之路]Node.js实现简易的爬虫-抓取博客所有文章列表信息
- [Python学习] 简单网络爬虫抓取博客文章及思想介绍
- 【python】爬虫3——抓取亦舒博客所有文章
- python爬虫抓取51cto博客大牛的文章保存到本地excel文件
- 要批量下载的博客文章太多,又不想全部下载怎么办---豆约翰博客备份专家新增选择导出博客功能
- php实现的简单的csdn博客文章抓取
- Scrapy ——自动多网页爬取(抓取某人博客所有文章)(四)
- WebMagic(二)----抓取CSDN博客、并打印
- java爬虫小项目-挖取CSDN博客文章
- 教您使用java爬虫gecco抓取JD全部商品信息(一)
- Java爬虫实战(一):抓取一个网站上的全部链接
- 微信公众号文章爬虫抓取实现原理!