WebMagic框架总结

一下是博主收藏的第一个WebMagic框架爬虫示例

推荐网站: http://webmagic.io/docs/zh/posts/ch4-basic-page-processor/pageprocessor.html

public class GithubRepoPageProcessor implements PageProcessor {

    // 部分一:抓取网站的相关配置,包括编码、抓取间隔、重试次数等
    private Site site = Site.me().setRetryTimes(3).setSleepTime(1000);

    @Override
    // process是定制爬虫逻辑的核心接口,在这里编写抽取逻辑
    public void process(Page page) {
        // 部分二:定义如何抽取页面信息,并保存下来
        page.putField("author", page.getUrl().regex("https://github\\.com/(\\w+)/.*").toString());
        page.putField("name", page.getHtml().xpath("//h1[@class=‘entry-title public‘]/strong/a/text()").toString());
        if (page.getResultItems().get("name") == null) {
            //skip this page
            page.setSkip(true);
        }
        page.putField("readme", page.getHtml().xpath("//div[@id=‘readme‘]/tidyText()"));

        // 部分三:从页面发现后续的url地址来抓取
        page.addTargetRequests(page.getHtml().links().regex("(https://github\\.com/[\\w\\-]+/[\\w\\-]+)").all());
    }

    @Override
    public Site getSite() {
        return site;
    }

    public static void main(String[] args) {

        Spider.create(new GithubRepoPageProcessor())
                //从"https://github.com/code4craft"开始抓
                .addUrl("https://github.com/code4craft")
                //开启5个线程抓取
                .thread(5)
                //启动爬虫
                .run();
    }
}
时间: 2024-10-12 01:05:03

WebMagic框架总结的相关文章

webmagic框架

http://webmagic.io/docs/zh/posts/ch6-custom-componenet/scheduler.html http://webmagic.io/ webmagic框架

【猪猪-后端】WebMagic框架搭建的爬虫,根据自定义规则,直接抓取,使用灵活,Demo部署即可查看。

原文:[猪猪-后端]WebMagic框架搭建的爬虫,根据自定义规则,直接抓取,使用灵活,Demo部署即可查看. 源代码下载地址:http://www.zuidaima.com/share/1581523414404096.htm 如果要使用注解方式实现,也是支持的. @TargetUrl("http://my.oschina.net/flashsword/blog/\\d+") public class OschinaBlog { @ExtractBy("//title&qu

webmagic的设计机制及原理-如何开发一个Java爬虫 转

此文章是webmagic 0.1.0版的设计手册,后续版本的入门及用户手册请看这里:https://github.com/code4craft/webmagic/blob/master/user-manual.md 之前就有网友在博客里留言,觉得webmagic的实现比较有意思,想要借此研究一下爬虫.最近终于集中精力,花了三天时间,终于写完了这篇文章.之前垂直爬虫写了一年多,webmagic框架写了一个多月,这方面倒是有一些心得,希望对读者有帮助. webmagic的目标 一般来说,一个爬虫包括

java 之webmagic 网络爬虫

webmagic简介: WebMagic是一个简单灵活的Java爬虫框架.你可以快速开发出一个高效.易维护的爬虫. http://webmagic.io/ 准备工作: Maven依赖(我这里用的Maven创建的web项目做测试): <dependencies> <!-- junit --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId>

网络爬虫采集数据几个问题

最近在做网络爬虫抓取数据,遇到几个重要问题,记录下来,以免忘记. 目前用的是第三方开源爬虫框架webmagic,所以暂时记录下来的不是爬虫实现和结构上的问题,而主要是在此框架上的逻辑开发问题. 1.要采集的数据在不同的页面上         比如,采集网站http://down.7po.com/上的应用,在应用列表页面有应用的id等信息,而此应用的详细页面没有列表页面的这些字段信息,那么就要从列表页面和详细页面中取出字段然后再合成一个应用的整体数据.对这个问题,比较直接的思路是,可以将先取出的一

Selenium来抓取动态加载的页面

一般的爬虫都是直接使用http协议,下载指定url的html内容,并对内容进行分析和抽取.在我写的爬虫框架webmagic里也使用了HttpClient来完成这样的任务. 但是有些页面是通过js以及ajax动态加载的,例如:花瓣网.这时如果我们直接分析原始页面的html,是得不到有效的信息的.当然,因为无论怎样动态加载,基础信息总归是包含在初始页面中得,所以我们可以用爬虫代码来模拟js代码,js读取页面元素值,我们也读取页面元素值;js发送ajax,我们就拼凑参数.发送ajax并解析返回的jso

Java 爬虫入门(网易云音乐和知乎实例)

最近公司赶项目,过上了996的生活,周日还要陪老婆,实在没时间静下来写点东西,于是导致了swift编写2048的第三篇迟迟没有开工,在此说声抱歉,尽量抽时间在这周末补出来. 首先来介绍下爬虫的作用,爬虫主要用于大批量抓取网站中我们所需数据,其实就是模拟出http请求,之后解析分析所得的数据获取我们需要的信息的这么一个过程. 由于网上已经有很多现成的爬虫框架了,这里就不重复造轮子了,先给大家说一下原理,大家可以自己尝试写一个,至于具体实现这篇只带来一个框架的使用实例,让大家可以根据例子快速写出所需

使用Selenium来抓取动态加载的页面

原文:http://my.oschina.net/flashsword/blog/147334?p=1 一般的爬虫都是直接使用http协议,下载指定url的html内容,并对内容进行分析和抽取.在我写的爬虫框架webmagic里也使用了HttpClient来完成这样的任务. 但是有些页面是通过js以及ajax动态加载的,例如:花瓣网.这时如果我们直接分析原始页面的html,是得不到有效的信息的.当然,因为无论怎样动态加载,基础信息总归是包含在初始页面中得,所以我们可以用爬虫代码来模拟js代码,j

Java后台获取Cookie

Cookie概念:Cookie服务器发送给浏览器的一小段文本信息 Java后台获取Cookie正常操作: Cookie[] cookies = request.getCookies(); if(cookies != null && cookies.length > 0){ for (Cookie cookie : cookies){ return cookie.getName() + " " + cookie.getValue(); } } 但是,只能获取自己域里