初学webmagic,使用了官网的例子,但是为什么控制台不显示抓取到的信息啊

恐惧大师 2017-03-24 11:08:29
如题,在学webmagic的时候用的抓取例子是这样的:
package com.example;
import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.pipeline.ConsolePipeline;
import us.codecraft.webmagic.processor.PageProcessor;


public class MyClass 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.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 MyClass()).addUrl("https://github.com/code4craft");//thread(5).run();
}

}
看网上的教程应该能够显示抓取到的数据,但是为什么我的运行结果不报错但是控制台就是只显示以下信息而不显示数据呢?
log4j:WARN No appenders could be found for logger (us.codecraft.webmagic.scheduler.QueueScheduler).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

Process finished with exit code 0
...全文
971 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuxi64 2018-05-16
  • 打赏
  • 举报
回复
2楼可以运行
召维 2017-07-01
  • 打赏
  • 举报
回复
我碰见跟你一样的问题了,最后发现是官方的例子本身的问题。你可以参考下面的代码,如果你的jar包都导入正确了; 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); private static int count =0; public Site getSite() { return site; } public void process(Page page) { //判断链接是否符合http://www.cnblogs.com/任意个数字字母-/p/7个数字.html格式 if(!page.getUrl().regex("http://www.cnblogs.com/[a-z 0-9 -]+/p/[0-9]{7}.html").match()){ //加入满足条件的链接 page.addTargetRequests( page.getHtml().xpath("//*[@id=\"post_list\"]/div/div[@class='post_item_body']/h3/a/@href").all()); }else{ //获取页面需要的内容 System.out.println("抓取的内容:"+ page.getHtml().xpath("//*[@id=\"Header1_HeaderTitle\"]/text()").get() ); count ++; } } public static void main(String[] args) { long startTime, endTime; System.out.println("开始爬取..."); startTime = System.currentTimeMillis(); Spider.create(new GithubRepoPageProcessor()).addUrl("https://www.cnblogs.com/").thread(5).run(); endTime = System.currentTimeMillis(); System.out.println("爬取结束,耗时约" + ((endTime - startTime) / 1000) + "秒,抓取了"+count+"条记录"); } }
hswawfj 2017-06-27
  • 打赏
  • 举报
回复
这个问题解决了吗

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧