国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

webmagic爬取分頁列表數(shù)據(jù)

Shisui / 2215人閱讀

摘要:是爬蟲框架中比較簡單易上手的一個。官網(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 nodes = page.getHtml().xpath("http://*[@id=datatableModel]/div").nodes(); //獲取列表的條數(shù)
int length=nodes.size();
System.out.println(length);
List list = new ArrayList<>();
for (int i = 0; i < length-2; i++) {
PrivateRecommend privateRecommend = new PrivateRecommend();
//根據(jù)xpath獲取對應(yīng)節(jié)點的內(nèi)容
privateRecommend.setProductName(page.getHtml().xpath("/html/body/div[1]/div[1]/div[3]/div["+(i+2)+"]/div[2]/div[1]/span[1]/span[1]/a/text()").get());
privateRecommend.setPerformanceBanchmark(page.getHtml().xpath("http://*[@id=doublelabel1_"+i+"-content]/text()").get());
privateRecommend.setUpPurchaseAmount(page.getHtml().xpath("http://*[@id=doublelabel2_"+i+"-content]/b/text()").get());
privateRecommend.setInvestmentPeriod(page.getHtml().xpath("http://*[@id=doublelabel2_"+i+"-content]/b/text()").get());
privateRecommend.setRiskClass(page.getHtml().xpath("http://*[@id=tt"+i+"-content]/text()").get());
privateRecommend.setRaisingPeriod(page.getHtml().xpath("/html/body/div[1]/div[1]/div[3]/div["+(i+2)+"]/div[2]/div[1]/span[2]/span/text()").get());
list.add(privateRecommend);
}
//將封裝的list對象傳到pipline中
page.putField("privateRecommend",list);
}
//執(zhí)行main方法
public void main(String[] args){
Spider.create(new PrivateRecommendFinanceSpider()).addUrl("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")
.addPipeline(new ConsolePipeline()).run();//pipline中保存數(shù)據(jù),此例中consolepipeline直接將內(nèi)容打印到控制臺??勺约憾x
log.info("=====私行推薦理財爬蟲執(zhí)行完畢");
}

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

相關(guān)文章

  • 優(yōu)雅的使用WebMagic框架寫Java爬蟲

    摘要:優(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...

    leejan97 評論0 收藏0
  • 關(guān)于webmagic爬取Https網(wǎng)站報錯的解決辦法

    摘要:目前最新版是版本,在爬取只支持的站點會報錯目前作者說會在版本發(fā)布修復(fù)錯誤,目前的解決辦法是臨時適配方式,修改中的方法,重寫自己實現(xiàn)的,并設(shè)置到中。 目前webmagic最新版是0.7.3版本,在爬取只支持TLS1.2的https站點會報錯 javax.net.ssl.SSLException: Received fatal alert: protocol_version at ...

    CKJOKER 評論0 收藏0
  • 如何使用Mybatis第三方插件--PageHelper實現(xiàn)分頁操作

    摘要:概述最近在做宜立方商城項目時,后臺管理系統(tǒng)要求實現(xiàn)分頁顯示,由于項目使用了逆向生成映射文件,所以在此使用了第三方插件來實現(xiàn)分頁這一功能,下面就如何在項目使用這一插件進行說明。使用方法添加依賴把依賴的包添加到工程中。 1.概述 最近在做宜立方商城項目時,后臺管理系統(tǒng)要求實現(xiàn)分頁顯示,由于項目使用了Mybatis逆向生成映射文件,所以在此使用了mybatis第三方插件--PageHelp...

    TZLLOG 評論0 收藏0
  • 如何使用Mybatis第三方插件--PageHelper實現(xiàn)分頁操作

    摘要:概述最近在做宜立方商城項目時,后臺管理系統(tǒng)要求實現(xiàn)分頁顯示,由于項目使用了逆向生成映射文件,所以在此使用了第三方插件來實現(xiàn)分頁這一功能,下面就如何在項目使用這一插件進行說明。使用方法添加依賴把依賴的包添加到工程中。 1.概述 最近在做宜立方商城項目時,后臺管理系統(tǒng)要求實現(xiàn)分頁顯示,由于項目使用了Mybatis逆向生成映射文件,所以在此使用了mybatis第三方插件--PageHelp...

    wenyiweb 評論0 收藏0
  • 【爬蟲】使用java爬取mm131美女圖片

    前言 最近無意間在知乎專欄看到有人使用python爬取了mm131的圖片。想著自己也有過爬蟲的開發(fā)經(jīng)驗(抱著學(xué)習(xí)的態(tài)度),故使用java也來寫個小爬蟲,爬蟲框架用的是webmagic,傳送門:https://github.com/code4craft/webmagic 實現(xiàn) 整個爬蟲項目如下圖,極其精簡,其中主要實現(xiàn)類是Mm131Spider showImg(http://pc3dvrbm9...

    Anshiii 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<