㈠ 互聯網金融爬蟲怎麼寫
Previous on 系列教程:
互聯網金融爬蟲怎麼寫-第一課 p2p網貸爬蟲(XPath入門)
互聯網金融爬蟲怎麼寫-第二課 雪球網股票爬蟲(正則表達式入門)
互聯網金融爬蟲怎麼寫-第三課 雪球網股票爬蟲(ajax分析)
哈哈,一小時不見,我又來了,話說出教程就是這么任性,咱們乘熱打鐵,把上節課分析完成但是沒寫的代碼給完成了!
工具要求:教程中主要使用到了 1、神箭手雲爬蟲 框架 這個是爬蟲的基礎,2、Chrome瀏覽器和Chrome的插件XpathHelper 這個用來測試Xpath寫的是否正確 3、Advanced REST Client用來模擬提交請求
基礎知識:本教程中主要用到了一些基礎的js和xpath語法,如果對這兩種語言不熟悉,可以提前先學習下,都很簡單。
還記得我們在遙遠的電商系列爬蟲教程的第一課里提到具體寫爬蟲的幾個步驟嗎?我們沿著路徑再來走一遍:
第一步:確定入口URL
暫且使用這個第一頁的ajax的url鏈接:
[html] view plain
http://xueqiu.com/stock/cata/stocklist.json?page=1&size=30&order=desc&orderby=percent&type=11%2C12
第二步:區分內容頁和中間頁
這次大家有點犯難了,雖然說每一個股票都有一個單獨的頁面,但是列表頁的信息已經蠻多的了,光爬取列表頁信息就已經夠了,那怎麼區分內容頁和中間頁呢?其實我們只需要將內容頁和中間頁的正則設置成一樣的既可。如下:
[html] view plain
http://xueqiu.com/stock/cata/stocklist\\.json\\?page=\\d+&size=30&order=desc&orderby=percent&type=11%2C12
在提醒大家一下,這里之所以轉義符用了兩個是因為在神箭手中,設置正則時,是字元串設置,需要對轉義符再做一次轉義。
第三步:內容頁抽取規則
由於ajax返回的是json,而神箭手是支持jsonpath的提取方式的,因此提取規則就很簡單了。不過這里要特殊注意的是,由於我們是在列表頁抽取數據,因此數據最頂層相當於是一個列表,我們需要在頂層的field上設置一個列表數據的值。具體抽取規則如下:
[javascript] view plain
fields: [
{
name: "stocks",
selector: "$.stocks",
selectorType:SelectorType.JsonPath,
repeated: true,
children:[
{
name:"code",
alias:"代碼",
selector:"$.code",
selectorType:SelectorType.JsonPath,
},
{
name:"name",
alias:"名稱",
selector:"$.name",
selectorType:SelectorType.JsonPath,
},
{
name:"current",
alias:"當前價格",
selector:"$.current",
selectorType:SelectorType.JsonPath,
},
{
name:"high",
alias:"最高價格",
selector:"$.high",
selectorType:SelectorType.JsonPath,
},
{
name:"low",
alias:"最低價格",
selector:"$.low",
selectorType:SelectorType.JsonPath,
}
]
}
]
我簡單抽取了一些信息,其他信息都類似。
好了,主要的代碼基本已經寫好了,剩下的還需要解決兩個問題
1.爬取前需要先訪問一下首頁獲取cookie
2.雖然可以直接加入下一頁,但是一共有多少頁並不知道。
首先對於第一點,我們只需要在beforeCrawl回調中訪問一下首頁即可,神箭手會自動對cookie進行處理和保存,具體代碼如下:
[javascript] view plain
configs.beforeCrawl = function(site){
site.requestUrl("http://xueqiu.com");
};
好了,除了下一頁基本已經沒什麼問題了,我們先測試一下看看效果:
數據已經出來了,沒問題,第一頁的數據都有了,那下一頁怎麼處理呢?我們有兩個方案:
第一個方案:
我們可以看到json的返回值中有一個count欄位,這個欄位目測應該是總數據量的值,那沒我們根據這個值,再加上單頁數據條數,我們就可以判斷總共有多少頁了。
第二個方案:
我們先訪問一下,假設頁數很大,看看會雪球會返回什麼,我們嘗試訪問第500頁,可以看到返回值中的stocks是0個,那麼我們可以根據是否有數據來判斷需不需要加下一頁。
兩個方案各有利弊,我們這里選擇用第一個方案來處理,具體代碼如下:
[javascript] view plain
configs.onProcessHelperPage = function(page, content, site){
if(page.url.indexOf("page=1&size=30") !== -1){
//如果是第一頁
var result = JSON.parse(page.raw);
var count = result.count.count;
var page_num = Math.ceil(count/30);
if(page_num > 1){
for(var i = 2;i<=page_num;i++){
site.addUrl("http://xueqiu.com/stock/cata/stocklist.json?page="+i+"&size=30&order=desc&orderby=percent&type=11%2C12");
}
}
}
};
好了,通過三課的艱苦奮戰,終於完成了雪球滬深一覽的征服。先看下跑出來的效果。
完整代碼如下:
[javascript] view plain
var configs = {
domains: ["xueqiu.com"],
scanUrls: ["http://xueqiu.com/stock/cata/stocklist.json?page=1&size=30&order=desc&orderby=percent&type=11%2C12"],
contentUrlRegexes: ["http://xueqiu.com/stock/cata/stocklist\\.json\\?page=\\d+&size=30&order=desc&orderby=percent&type=11%2C12"],
helperUrlRegexes: ["http://xueqiu.com/stock/cata/stocklist\\.json\\?page=\\d+&size=30&order=desc&orderby=percent&type=11%2C12"],
fields: [
{
name: "stocks",
selector: "$.stocks",
selectorType:SelectorType.JsonPath,
repeated: true,
children:[
{
name:"code",
alias:"代碼",
selector:"$.code",
selectorType:SelectorType.JsonPath,
},
{
name:"name",
alias:"名稱",
selector:"$.name",
selectorType:SelectorType.JsonPath,
},
{
name:"current",
alias:"當前價格",
selector:"$.current",
selectorType:SelectorType.JsonPath,
},
{
name:"high",
alias:"最高價格",
selector:"$.high",
selectorType:SelectorType.JsonPath,
},
{
name:"low",
alias:"最低價格",
selector:"$.low",
selectorType:SelectorType.JsonPath,
}
]
}
]
};
configs.onProcessHelperPage = function(page, content, site){
if(page.url.indexOf("page=1&size=30") !== -1){
//如果是第一頁
var result = JSON.parse(page.raw);
var count = result.count.count;
var page_num = Math.ceil(count/30);
if(page_num > 1){
for(var i = 2;i<=page_num;i++){
site.addUrl("http://xueqiu.com/stock/cata/stocklist.json?page="+i+"&size=30&order=desc&orderby=percent&type=11%2C12");
}
}
}
};
configs.beforeCrawl = function(site){
site.requestUrl("http://xueqiu.com");
};
var crawler = new Crawler(configs);
crawler.start();
㈡ 互聯網金融理財群公告怎麼寫
公告
㈢ 互聯網金融的發展與監管論文提綱怎麼寫
善意提醒你,網上代 寫都是騙子,別信他們,自己在網路上搜些相關資料作參考吧
㈣ 了解我國金融業發展的現狀及互聯網金融的發展論文怎麼寫
估計你是在抄校生。這襲個標題太大了,國內金融業發展現狀可以寫一篇完整的論文,互金行業發展趨勢又可以寫一篇完整的論文,兩個合在一起資深從業者都未必能寫得漂亮。
如果拆開選擇,相對來說後者好寫一些,因為參考資料很好找。
結論也容易得出,在技術創新驅動業務形態創新的環境下,提高監管跟進速度,防範結構性風險,完善從業人員職業道德培訓,加強普通民眾投資理財教育,擁抱新技術帶來的便捷性和易用性
㈤ 互聯網金融風險論文該怎麼寫
聯網金融是近兩年來的熱點,也是比較新的話題
這個比較通,對待
㈥ 關於互聯網金融對商業銀行的影響與對策研究的開題報告怎麼寫
已經為你准備好了
關於互聯網金融對商業銀行的影響與對策研究的
㈦ 企業不從事不涉及互聯網金融業務的聲明怎麼寫
企業不從事不涉及互聯網金融業務的聲明怎麼寫,首先是格式,你可以看看其它的聲明是什麼格式,然後參照他的格式,你要注意的是此聲明是哪家公司發起的,此聲明是對誰發起的,也就是說,聲明寫給誰看的。然後就是時間日期。網上備案的方法和聲明差不多,看格式。至於具體的內容,就還要具體分析了。我的回答完畢,請給個採納,謝謝。
㈧ 我怎樣在互聯網金融領域生存與發展 範文
互聯網+金融,有機遇,也有坑
㈨ ppt最後一張關於對互聯網金融總結語怎麼寫
你可能是把那張幻燈片隱藏了……你編輯幻燈片,在最後一張的導航縮略圖那裡右鍵點擊,看看是否隱藏……