摘要:是爬蟲框架中比較簡單易上手的一個。官網(wǎng)鏈接下面的例子是使用這個框架來爬取工商銀行的私人理財推薦分頁列表數(shù)據(jù)。頁面鏈接為引入配置如果項目已經(jīng)引入記錄日志,則需要在中排除。
webmagic是java爬蟲框架中比較簡單易上手的一個。官網(wǎng)鏈接:http://webmagic.io/
下面的例子是使用這個框架來爬取工商銀行的私人理財推薦分頁列表數(shù)據(jù)。頁面鏈接為: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
如果項目已經(jīng)引入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("http://*[@id=pageturn]/ul/li[3]/span[2]/b/text()").get();
int pageNumInt=Integer.parseInt(pageNum);
for (int i = 1; i < pageNumInt; i++) {
//獲取下一頁的鏈接,將當(dāng)前頁數(shù)拼接到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.對象的內(nèi)容
@Data
public class PrivateRecommend {
/**主鍵*/ private Long id; /** * 名稱 */ private String productName; /** *預(yù)期年化收益率 */ private String performanceBanchmark; /** *起購金額 */ private String upPurchaseAmount; /** *期限 */ private String investmentPeriod; /** * 風(fēng)險等級 */ private String riskClass; /** * 最近購買開放日 */ private String raisingPeriod; /** * 更新日期 */ private String updateTime;
}
5.可能存在的坑
a.可能會存在slf4j日志jar的沖突
b.xpath獲取節(jié)點上的內(nèi)容
c.獲取列表下一頁列表數(shù)
d.將下一頁鏈接添加到爬蟲隊列中
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/75937.html
摘要:優(yōu)雅的使用框架,爬取唐詩別苑網(wǎng)的詩人詩歌數(shù)據(jù)同時在幾種動態(tài)加載技術(shù)中對比作選擇雖然差不多兩年沒有維護,但其本身是一個優(yōu)秀的爬蟲框架的實現(xiàn),源碼中有很多值得參考的地方,特別是對爬蟲多線程的控制。 優(yōu)雅的使用WebMagic框架,爬取唐詩別苑網(wǎng)的詩人詩歌數(shù)據(jù) 同時在幾種動態(tài)加載技術(shù)(HtmlUnit、PhantomJS、Selenium、JavaScriptEngine)中對比作選擇 We...
摘要:目前最新版是版本,在爬取只支持的站點會報錯目前作者說會在版本發(fā)布修復(fù)錯誤,目前的解決辦法是臨時適配方式,修改中的方法,重寫自己實現(xiàn)的,并設(shè)置到中。 目前webmagic最新版是0.7.3版本,在爬取只支持TLS1.2的https站點會報錯 javax.net.ssl.SSLException: Received fatal alert: protocol_version at ...
摘要:概述最近在做宜立方商城項目時,后臺管理系統(tǒng)要求實現(xiàn)分頁顯示,由于項目使用了逆向生成映射文件,所以在此使用了第三方插件來實現(xiàn)分頁這一功能,下面就如何在項目使用這一插件進行說明。使用方法添加依賴把依賴的包添加到工程中。 1.概述 最近在做宜立方商城項目時,后臺管理系統(tǒng)要求實現(xiàn)分頁顯示,由于項目使用了Mybatis逆向生成映射文件,所以在此使用了mybatis第三方插件--PageHelp...
摘要:概述最近在做宜立方商城項目時,后臺管理系統(tǒng)要求實現(xiàn)分頁顯示,由于項目使用了逆向生成映射文件,所以在此使用了第三方插件來實現(xiàn)分頁這一功能,下面就如何在項目使用這一插件進行說明。使用方法添加依賴把依賴的包添加到工程中。 1.概述 最近在做宜立方商城項目時,后臺管理系統(tǒng)要求實現(xiàn)分頁顯示,由于項目使用了Mybatis逆向生成映射文件,所以在此使用了mybatis第三方插件--PageHelp...
前言 最近無意間在知乎專欄看到有人使用python爬取了mm131的圖片。想著自己也有過爬蟲的開發(fā)經(jīng)驗(抱著學(xué)習(xí)的態(tài)度),故使用java也來寫個小爬蟲,爬蟲框架用的是webmagic,傳送門:https://github.com/code4craft/webmagic 實現(xiàn) 整個爬蟲項目如下圖,極其精簡,其中主要實現(xiàn)類是Mm131Spider showImg(http://pc3dvrbm9...
閱讀 825·2023-04-26 00:13
閱讀 2794·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