各大財(cái)經(jīng)網(wǎng)站找了一圈,數(shù)據(jù)最容易爬取的當(dāng)選網(wǎng)易財(cái)經(jīng)
資產(chǎn)負(fù)債表地址 http://quotes.money.163.com/f10/zcfzb_000333.html
上市公司代碼表下載地址(PDF 文件): http://www.csrc.gov.cn/pub/newsite/scb/ssgshyfljg/201902/t20190212_350821.html 證監(jiān)會(huì)官網(wǎng)找到的所有上市公司明細(xì)饶囚,可在PowerBI中選擇PDF為數(shù)據(jù)源獲取
2 數(shù)據(jù)導(dǎo)入
1)科目表
2)資產(chǎn)負(fù)債表數(shù)據(jù)
3)上市公司股票代碼表
由于網(wǎng)易數(shù)據(jù)源的緣故帕翻,財(cái)務(wù)報(bào)表的科目明細(xì)和整體數(shù)值是分開(kāi)的,那就分別作為維度表和事實(shí)表萝风,都增加索引列嘀掸,在模型建模建立連接即可。
由于資產(chǎn)負(fù)債表數(shù)據(jù)為二維表规惰,我們需要用逆透視把它變成一維表(提升標(biāo)題后 - 選中索引列 - 逆透視其他列)睬塌,再刪除掉值中的空值
對(duì)于從PDF文件獲取的上市公司股票代碼表,可刪除默認(rèn)出現(xiàn)的“更改的類型”步驟歇万,因?yàn)楣善贝a有很多以0開(kāi)頭揩晴,需要以ABC文本格式才能顯示出來(lái)。
前三列利用向下填充補(bǔ)充數(shù)據(jù)
到此單張表的數(shù)據(jù)清洗工作完成贪磺。
4 批量爬取其他公司報(bào)表
觀察下網(wǎng)址結(jié)構(gòu)硫兰,一串文字+股票代碼坟募,邏輯簡(jiǎn)單惰赋。那通過(guò)“上市公司行業(yè)分類表”中的股票代碼便可批量導(dǎo)入
第一步,建立參數(shù):取名“Web”
當(dāng)前值可設(shè)置為當(dāng)前股票代碼 000333
"&Text.From(Web)&"
即首行公式為
=Web.BrowserContents("http://quotes.money.163.com/f10/zcfzb_"&Text.From(Web)&".html")
第三步泳赋,創(chuàng)建自定義函數(shù),取名zcfcb
第四步腮郊,在從PDF文件獲取的上市公司股票代碼表中做篩選摹蘑,考慮股票代碼很多筹燕,獲取全部數(shù)據(jù)非常耗時(shí)轧飞,我們先只篩選前3只股票衅鹿。
選擇“添加列”,調(diào)用自定義函數(shù)过咬,增加一列大渤。
字段“zcfcb”的每一個(gè)單元格中的Table都是一張完整的資產(chǎn)負(fù)債表數(shù)據(jù),這種方案是先解決局部掸绞,再向上逐一擊破泵三,打開(kāi)表格就是完整的數(shù)據(jù)。
加載數(shù)據(jù)后衔掸,幾張表建立關(guān)系烫幕。
現(xiàn)金流量表、利潤(rùn)表也照此方法搞定敞映。
5 進(jìn)一步思考
剛剛Demo的測(cè)試较曼,我們只選取了3家公司,一切都很完美振愿,那如果將3500+家上市公司都加載進(jìn)來(lái)捷犹,批量爬取將會(huì)發(fā)生什么?
很慢冕末!在增加了兩個(gè)數(shù)量級(jí)之后萍歉,PBI爬取數(shù)據(jù)的軟肋就凸顯出來(lái),讀取網(wǎng)頁(yè)表格變得非常緩慢档桃,僅資產(chǎn)負(fù)債就有將近500萬(wàn)+行數(shù)據(jù)枪孩,全部加載到PBI耗時(shí)兩個(gè)小時(shí),一度讓我非常抓狂藻肄。
缺失销凑!由于一些不知的原因,在爬取過(guò)程中存在一些上市公司的數(shù)據(jù)缺失仅炊,返回的是空表斗幼。而且測(cè)試中發(fā)現(xiàn)有不穩(wěn)定的情況,同一只股票單獨(dú)可以抓取到數(shù)據(jù)抚垄,但放在參數(shù)里出現(xiàn)了錯(cuò)誤蜕窿。
6 總結(jié)
PBI的PowerQuery雖然可以批量讀取數(shù)據(jù),但它更適合對(duì)接數(shù)據(jù)庫(kù)呆馁,CSV這些確定的數(shù)據(jù)源桐经。對(duì)于獲取網(wǎng)頁(yè)數(shù)據(jù),它對(duì)數(shù)據(jù)的結(jié)構(gòu)要求非常高浙滤。我們通過(guò)案例體驗(yàn)式地學(xué)會(huì)PowerQuery的特性和功能阴挣,但實(shí)際工作中對(duì)于大范圍爬取網(wǎng)頁(yè)數(shù)據(jù)的需求,建議嘗試其他更專業(yè)的爬蟲(chóng)工具纺腊。 ?
相關(guān)閱讀:
用PBI分析上市公司財(cái)務(wù)數(shù)據(jù)(一)
用PowerBI分析上市公司財(cái)務(wù)數(shù)據(jù)(二)
如何用PowerBI導(dǎo)入網(wǎng)頁(yè)數(shù)據(jù)
加入社群畔咧,成為分享者茎芭、創(chuàng)作者請(qǐng)聯(lián)系小編微信:beyondexcel