摘要:是爬虫框架中比较简单易上手的一个。官网链接下面的例子是使用这个框架来爬取工商银行的私人理财推荐分页列表数据。页面链接为引入配置如果项目已经引入记录日志,则需要在中排除。
webmagic是java爬虫框架中比较简单易上手的一个。官网链接:http://webmagic.io/
下面的例子是使用这个框架来爬取工商银行的私人理财推荐分页列表数据。页面链接为:https://mybank.icbc.com.cn/se...$17$TJ&Area_code=0200&requestChannel=302
1.引入webmagic:maven配置
us.codecraft webmagic-core 0.7.3 us.codecraft webmagic-extension 0.7.3
如果项目已经引入slf4j记录日志,则需要在webmagic-extension中排除slf4j-log4j12。如下:
us.codecraft webmagic-extension 0.7.3 org.slf4j slf4j-log4j12
2.日志文件配置如下:
log4j.rootLogger=info, ServerDailyRollingFile, stdout
log4j.appender.ServerDailyRollingFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.ServerDailyRollingFile.DatePattern="."yyyy-MM-dd
log4j.appender.ServerDailyRollingFile.File=/home/myfile/log/mps.log //日志文件路径配置
log4j.appender.ServerDailyRollingFile.layout=org.apache.log4j.PatternLayout
log4j.appender.ServerDailyRollingFile.layout.ConversionPattern=%d - %m%n
log4j.appender.ServerDailyRollingFile.Append=true
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p [%c] %m%n
3.爬虫代码
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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;
import us.codecraft.webmagic.selector.Selectable;
import java.util.ArrayList;
import java.util.List;
/**
*私行推荐理财
*/
public class PrivateRecommendFinanceSpider implements PageProcessor {
private Logger log = LoggerFactory.getLogger(PrivateRecommendFinanceSpider.class);
// 定义连接失败时,重试机制
private static Site site = Site.me().setRetryTimes(3).setSleepTime(100);
public Site getSite() {
return site;
}
@Override
public void process(Page page) {
log.info("私行推荐理财爬虫开始====");
String pageNum=page.getHtml().xpath("//*[@id=pageturn]/ul/li[3]/span[2]/b/text()").get();
int pageNumInt=Integer.parseInt(pageNum);
for (int i = 1; i < pageNumInt; i++) {
//获取下一页的链接,将当前页数拼接到url上
String nextUrl="https://mybank.icbc.com.cn/servlet/ICBCBaseReqServletNoSession?dse_operationName=per_FinanceCurProListP3NSOp&p3bank_error_backid=120103&pageFlag=0&menuLabel=10$17$TJ&Area_code=0200&requestChannel=302&nowPageNum_turn="+(i+1);
//将下一页链接添加到爬虫队列中
page.addTargetRequest(nextUrl);
}
List
int length=nodes.size();
System.out.println(length);
List
4.对象的内容
@Data
public class PrivateRecommend {
/**主键*/ private Long id; /** * 名称 */ private String productName; /** *预期年化收益率 */ private String performanceBanchmark; /** *起购金额 */ private String upPurchaseAmount; /** *期限 */ private String investmentPeriod; /** * 风险等级 */ private String riskClass; /** * 最近购买开放日 */ private String raisingPeriod; /** * 更新日期 */ private String updateTime;
}
5.可能存在的坑
a.可能会存在slf4j日志jar的冲突
b.xpath获取节点上的内容
c.获取列表下一页列表数
d.将下一页链接添加到爬虫队列中
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/75937.html
摘要:优雅的使用框架,爬取唐诗别苑网的诗人诗歌数据同时在几种动态加载技术中对比作选择虽然差不多两年没有维护,但其本身是一个优秀的爬虫框架的实现,源码中有很多值得参考的地方,特别是对爬虫多线程的控制。 优雅的使用WebMagic框架,爬取唐诗别苑网的诗人诗歌数据 同时在几种动态加载技术(HtmlUnit、PhantomJS、Selenium、JavaScriptEngine)中对比作选择 We...
摘要:目前最新版是版本,在爬取只支持的站点会报错目前作者说会在版本发布修复错误,目前的解决办法是临时适配方式,修改中的方法,重写自己实现的,并设置到中。 目前webmagic最新版是0.7.3版本,在爬取只支持TLS1.2的https站点会报错 javax.net.ssl.SSLException: Received fatal alert: protocol_version at ...
摘要:概述最近在做宜立方商城项目时,后台管理系统要求实现分页显示,由于项目使用了逆向生成映射文件,所以在此使用了第三方插件来实现分页这一功能,下面就如何在项目使用这一插件进行说明。使用方法添加依赖把依赖的包添加到工程中。 1.概述 最近在做宜立方商城项目时,后台管理系统要求实现分页显示,由于项目使用了Mybatis逆向生成映射文件,所以在此使用了mybatis第三方插件--PageHelp...
摘要:概述最近在做宜立方商城项目时,后台管理系统要求实现分页显示,由于项目使用了逆向生成映射文件,所以在此使用了第三方插件来实现分页这一功能,下面就如何在项目使用这一插件进行说明。使用方法添加依赖把依赖的包添加到工程中。 1.概述 最近在做宜立方商城项目时,后台管理系统要求实现分页显示,由于项目使用了Mybatis逆向生成映射文件,所以在此使用了mybatis第三方插件--PageHelp...
前言 最近无意间在知乎专栏看到有人使用python爬取了mm131的图片。想着自己也有过爬虫的开发经验(抱着学习的态度),故使用java也来写个小爬虫,爬虫框架用的是webmagic,传送门:https://github.com/code4craft/webmagic 实现 整个爬虫项目如下图,极其精简,其中主要实现类是Mm131Spider showImg(http://pc3dvrbm9...
阅读 825·2023-04-26 00:13
阅读 2793·2021-11-23 10:08
阅读 2432·2021-09-01 10:41
阅读 2112·2021-08-27 16:25
阅读 4177·2021-07-30 15:14
阅读 2359·2019-08-30 15:54
阅读 857·2019-08-29 16:22
阅读 2736·2019-08-26 12:13