新手配置webmagic

2021-05-12  本文已影响0人  顺风飘千里

基础环境及工具

  1. java 的开发环境JDK(没有安装过可以看这个

  2. 开发工具IDEA

新建程序

新建程序

为新建的程序设置JDK版本


设置JDK版本

name设置项目名,location设置项目保存路径


新建完项目后配置依赖文件

文件位置:WebMagicSpider/pom.xml

依赖文件

将以下xml文件粘贴进去等待maven下载所需包

<dependency>
    <groupId>us.codecraft</groupId>
    <artifactId>webmagic-core</artifactId>
    <version>0.7.3</version>
</dependency>
<dependency>
    <groupId>us.codecraft</groupId>
    <artifactId>webmagic-extension</artifactId>
    <version>0.7.3</version>
</dependency>

配置日志文件
文件位置在:WebMagicSpider/src/main/resources/
新建文件名为log4j.properties


日志文件

将以下代码粘贴进去

# Set root logger level to DEBUG and its only appender to A1.
log4j.rootLogger=DEBUG, A1

# A1 is set to be a ConsoleAppender.
log4j.appender.A1=org.apache.log4j.ConsoleAppender

# A1 uses PatternLayout.
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

之前没有配置日志文件运行程序后会报错
log4j:WARN No appenders could be found for logger (us.codecraft.webmagic.scheduler.QueueScheduler).
log4j:WARN Please initialize the log4j system properly.


没有日志文件报错

新建类,以下是代码(代码来)

import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.processor.PageProcessor;

public class GithubRepoPageProcessor implements PageProcessor {

    private Site site = Site.me().setRetryTimes(3).setSleepTime(100);

    @Override
    public void process(Page page) {
        page.addTargetRequests(page.getHtml().links().regex("(https://github\\.com/[\\w\\-]+/[\\w\\-]+)").all());
        page.addTargetRequests(page.getHtml().links().regex("(https://github\\.com/[\\w\\-])").all());
        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()"));
    }

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

    public static void main(String[] args) {
        Spider.create(new GithubRepoPageProcessor()).addUrl("https://github.com/code4craft").thread(5).run();
    }
}

我在运行时报错
Information:java: javacTask: 源发行版 6 需要目标发行版 1.6
Information:java: Errors occurred while compiling module 'WebMagic'
原因是当前程序jdk版本不对在设置里修改一下即可


修改jdk

我这里将1.5改为1.6你可以根据你的报错修改合适版本号即可


修改jdk
以上程序可以正常运行
上一篇 下一篇

猜你喜欢

热点阅读