问题描述

  • ❌Multiple bindings were found on the class path
  • ❌Could not get a resource from the pool
  • ✔️更换为HttpComponents

❌Multiple bindings were found on the class path

pom.xml

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

最近新项目需要使用 WebMagic 爬虫框架时,发现该包里面有两个日志,导致出现 SLF4J: Class path contains multiple SLF4J bindings. 问题说严重也不严重,毕竟不影响程序的运行。

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Users/19095/.m2/repository/org/slf4j/slf4j-log4j12/1.7.32/slf4j-log4j12-1.7.32.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Users/19095/.m2/repository/ch/qos/logback/logback-classic/1.2.6/logback-classic-1.2.6.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]


但是红色的信息还是比较难受的,因此需要在引用依赖项里面排除某个日志,可以使用 exclusions.exclusion 标签里面来排除日志。

<dependency><groupId>us.codecraft</groupId><artifactId>webmagic-core</artifactId><version>0.7.3</version><!-- 排 除 日 志 --><exclusions><exclusion><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId></exclusion><exclusion><groupId>log4j</groupId><artifactId>log4j</artifactId></exclusion></exclusions>
</dependency>

  • multiple_bindings | SLF4J Error Codes

❌Could not get a resource from the pool

public class crawlerProcessTest {@Testpublic void firstSpider() {Spider.create(new GithubRepoPageProcessor()).addUrl("https://www.baidu.com").setScheduler(new RedisScheduler("localhost")).addPipeline(new JsonFilePipeline("")).thread(5).run();}
}

通过 webmagic-extension 默认例子 GithubRepoPageProcessor 去获取页面数据时,却没有正确运行起来。

redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool...
Caused by: redis.clients.jedis.exceptions.JedisConnectionException: Failed to create socket....
Caused by: java.net.SocketTimeoutException: connect timed out...

这个就是因为没有安装和配置 redis ,导致连接不上 redis。

这里有二种方法:

  1. 安装 redis 数据库

    docker pull redis
    docker run -itd --name webmagic -p 6379:6379 redis
    
  2. 不设置 RedisScheduler 数据源
    setScheduler 不设置 RedisScheduler 数据源改为 QueueScheduler ,这样数据都会在打印到控制台里面。

    public class crawlerProcessTest {@Testpublic void firstSpider() {Spider.create(new GithubRepoPageProcessor()).addUrl("https://www.baidu.com")// .setScheduler(new RedisScheduler("localhost")).setScheduler(new QueueScheduler()).addPipeline(new JsonFilePipeline("")).thread(5).run();}
    }
    

✔️更换为HttpComponents

众所周知 WebMagic 是基于 HttpClient 开发的,HttpClient 在老早以前就被 Apache 弃用了,单独开发出 HttpComponents 来代替 HttpClient,似乎是为了解决授权的问题。

Apache HttpComponents:依赖项

  1. 排除日志模块

    为什么排除 httpclient5 里面的日志,当然是因为项目已经拥有了其他日志文件,并且已经配置好了。

    <properties><httpClient-components.version>5.1.3</httpClient-components.version>
    </properties>
    <dependencies><dependency><groupId>org.apache.httpcomponents.client5</groupId><artifactId>httpclient5</artifactId><version>${httpClient-components.version}</version><exclusions><exclusion><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId></exclusion></exclusions></dependency>
    </dependencies>
    

如果你是无意刷到这篇文章并看到这里,希望你给我的文章来一个赞赞

WebMagic 爬虫框架问题描述相关推荐

  1. java 使用webmagic 爬虫框架爬取博客园数据

    java 使用webmagic 爬虫框架爬取博客园数据存入数据库 学习记录   webmagic简介: WebMagic是一个简单灵活的Java爬虫框架.你可以快速开发出一个高效.易维护的爬虫. ht ...

  2. 使用WebMagic爬虫框架爬取暴走漫画

    WebMagic是黄亿华先生开发的一款Java轻量级爬虫框架.我之所以选择WebMagic,因为它非常轻量级,可以学习爬虫的原理,而且用WebMagic非常容易进行功能扩展.也许你会听过另一个爬虫框架 ...

  3. Webmagic 爬虫框架 爬取马蜂窝、携程旅游、汽车之家游记信息

    WebMagic学习 遇到的问题 Log4j错误 解决:在src目录下添加配置文件 log4j.properties log4j.rootLogger=INFO, stdout, filelog4j. ...

  4. magicmatch java_签名图片一键批量生成 使用Java的Webmagic爬虫实现

    使用Webmagic爬虫实现的签名档一键生成 实现原理 这里爬取的网址是http://jiqie.zhenbi.com/c/ 然后获取到里面提交数据,提交地址,在对这些数据进行Post提交 解析htm ...

  5. 使用Scrapy爬虫框架简单爬取图片并保存本地(妹子图)

    使用Scrapy爬虫框架简单爬取图片并保存本地(妹子图) 初学Scrapy,实现爬取网络图片并保存本地功能 一.先看最终效果 保存在F:\pics文件夹下 二.安装scrapy 1.python的安装 ...

  6. SpringBoot + WebMagic实现一个的爬虫框架

    作者 | jessehua 来源 | www.jianshu.com/p/cfead4b3e34e WebMagic是一个开源的java爬虫框架.WebMagic框架的使用并不是本文的重点,具体如何使 ...

  7. 爬虫框架webmagic与spring boot的结合使用--转

    原文地址:http://www.jianshu.com/p/c3fc3129407d 1. 爬虫框架webmagic WebMagic是一个简单灵活的爬虫框架.基于WebMagic,你可以快速开发出一 ...

  8. 网络爬虫框架Webmagic

    1 谈谈网络爬虫 1.1 什么是网络爬虫 在大数据时代,信息的采集是一项重要的工作,而互联网中的数据是海量的,如果单纯靠人力进行信息采集,不仅低效繁琐,搜集的成本也会提高.如何自动高效地获取互联网中我 ...

  9. 基于SpringBoot+WebMagic实现一个的爬虫框架

    点击关注公众号,实用技术文章及时了解 来源:www.jianshu.com/p/cfead4b3e34e WebMagic是一个开源的java爬虫框架.WebMagic框架的使用并不是本文的重点,具体 ...

最新文章

  1. SpringMVC异常报406 (Not Acceptable)的解决办法
  2. 设备文件的创建mknod
  3. 模拟N场比赛理解自顶向下的程序设计思维
  4. 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持
  5. 将SQL Server查询导出本地excel(mail发送)
  6. 多线程是并行还是并发_并发,并行,线程,进程,异步和同步有相关性吗?
  7. php5.5开发环境配置,windows下配置php5.5开发环境及开发扩展
  8. Codeforces Round #246 (Div. 2) D. Prefixes and Suffixe 后缀数组
  9. 陈彤:一个网络编辑的11年
  10. fread 单独测试没有问题 在正式项目里面丢数据 可能是系统资源不足 预读出了问题
  11. 如何在思科虚拟PC机信息进行修改
  12. windows7 系统下载(2)
  13. android9支持的tf卡格式,老手机福音 三星安卓9.0测试存储卡装应用功能
  14. 在php中使用高德api,javascript - 高德地图定位如何调用api?
  15. c语言输出宽度右对齐,输出宽度设置
  16. Maven 设置项目编码
  17. PS动作快速把图片做成手绘油漆涂鸦画效果
  18. 【Medium Python】第三话:python多线程为什么不能并行?
  19. 日本最新矢量图_日本地图的制作_都道府县_1都1道2府和43县(県)_日本shape
  20. SD155非接触五维位移监测仪应用建筑物监测 大坝监测 滑坡监测 桥梁监测 地表监测 墙裂监测

热门文章

  1. 【程序设计】VB.NET程序设计学习指南
  2. 上证50etf期权合约是什么?上证50etf期权代理怎么样?
  3. Vue 插件 vee-validate校验插件详解大全
  4. VC绘图中的双缓冲技术
  5. 关于vue的seo优化
  6. 酷狗Andorid5.0新版 手机K歌上风突显
  7. ajax局部刷新页面
  8. Libevent 2.0.20源码分析-event、eventop结构体分析
  9. Photoshop: Editing Video and Creating Slideshows Photoshop:编辑视频和创建幻灯片 Lynda课程中文字幕
  10. python中fasta转为字典