可以用ForeSpider數(shù)據(jù)采集系統(tǒng)試一下,系統(tǒng)已將框架都搭建好,直接根據(jù)網(wǎng)頁結(jié)構(gòu)進行相應(yīng)配置即可,還有大量實戰(zhàn)教程可以參考。這是采集新浪財經(jīng)上市公司高管信息的教程,可供您參考。
采集網(wǎng)站
【場景描述】采集新浪財經(jīng)所有行業(yè)板塊中上市公司的高管信息。
【源網(wǎng)站介紹】
新浪財經(jīng),提供7X24小時財經(jīng)資訊及全球金融市場報價,覆蓋股票、債券、基金、期貨、信托、理財、管理等多種面向個人和企業(yè)的服務(wù)。
【使用工具】前嗅ForeSpider數(shù)據(jù)采集系統(tǒng)
【入口網(wǎng)址】
http://finance.sina.com.cn/stock/sl/#sinaindustry_1
【采集內(nèi)容】
采集新浪財經(jīng)所有行業(yè)板塊中上市公司的高管信息。
【采集效果】如下圖所示:
l思路分析
配置思路概覽:
l配置步驟
1.新建采集任務(wù)
選擇【采集配置】,點擊任務(wù)列表右上方【+】號可新建采集任務(wù),將采集入口地址填寫在【采集地址】框中,【任務(wù)名稱】自定義即可,點擊下一步。
選擇列表鏈接,點擊完成按鈕,即創(chuàng)建任務(wù)完成。
2.獲取行業(yè)鏈接
①用瀏覽器打開該網(wǎng)頁,查看各行業(yè)的鏈接規(guī)律,發(fā)現(xiàn)行業(yè)鏈接規(guī)律為:http://vip.stock.finance.sina.com.cn/mkt/#new_+行業(yè)名稱首字母
比如:
http://vip.stock.finance.sina.com.cn/mkt/#new_cbzz(船舶制造)
http://vip.stock.finance.sina.com.cn/mkt/#new_tchy(陶瓷行業(yè))
②所以獲取行業(yè)鏈接的方法為:將各行業(yè)關(guān)鍵詞的首字母設(shè)置為關(guān)鍵詞,用腳本拼接行業(yè)鏈接。
③設(shè)置關(guān)鍵詞,具體步驟如下所示:
關(guān)鍵詞文本如下:
new_blhy;new_cbzz;new_cmyl;new_dlhy;new_dqhy;new_dzqj;new_dzxx;new_fdc;new_fdsb;new_fjzz;new_fzhy;new_fzjx;new_fzxl;new_glql;new_gsgq;new_gthy;new_hbhy;new_hghy;new_hqhy;new_jdhy;new_jdly;new_jjhy;new_jrhy;new_jtys;new_jxhy;new_jzjc;new_kfq;new_ljhy;new_mtc;new_mthy;new_nlmy;new_nyhf;new_qczz;new_qtxy;new_slzp;new_snhy;new_sphy;new_stock;new_swzz;new_sybh;new_syhy;new_tchy;new_wzwm;new_ylqx;new_yqyb;new_ysbz;new_ysjs;new_zhhy;new_zzhy
④高級設(shè)置,設(shè)置一個關(guān)鍵詞參數(shù),具體操作如下圖所示:
⑤編寫關(guān)鍵詞拼寫鏈接的腳本:
具體腳本文本如下:
varsear=EXTRACT.GetSearch(this);//關(guān)鍵詞獲取
vark=sear.Search();//查找關(guān)鍵詞
while(k){//遍歷關(guān)鍵詞
urlu;//定義一個url
u.urlname="http://vip.stock.finance.sina.com.cn/mkt/#"+k.wd;//拼接行業(yè)鏈接
u.title="新浪行業(yè)@"+k.wd;//將標題設(shè)置為關(guān)鍵詞名稱
u.entryid=this.id;
u.tmplid=1;//關(guān)聯(lián)模板1
k=sear.Search();//查找下一個關(guān)鍵詞
RESULT.AddLink(u);//輸出一個url值
}
⑥采集預(yù)覽,查看行業(yè)鏈接是否正確。
3.獲取翻頁鏈接
①觀察發(fā)現(xiàn),有部分行業(yè)數(shù)據(jù)量比較大,有多頁數(shù)據(jù),需要翻頁。
打開【其他行業(yè)】板塊,發(fā)現(xiàn)4頁數(shù)據(jù),點擊F12,右側(cè)出現(xiàn)請求,點擊第二頁,觀察發(fā)現(xiàn)請求:是翻頁請求鏈接。如下圖所示
補充:下圖為請求response轉(zhuǎn)譯后內(nèi)容,可看出其中有第二頁中的內(nèi)容,故確定此鏈接為翻頁請求鏈接。
②復(fù)制翻頁請求鏈接:
③同樣方法,找到第三頁和第四頁請求鏈接,并復(fù)制出來。
④觀察鏈接,發(fā)現(xiàn)規(guī)律如下圖所示:
⑤寫翻頁鏈接腳本,具體操作如下所示:
腳本文本:
varhangye=URL.title.Right("@");//定義hangye為當前鏈接標題@右側(cè)內(nèi)容,即行業(yè)名稱首字母
urlu;//定義一個url
for(vari=1;i<=3;i++){//for循環(huán)表示翻頁
u.urlname="http://vip.stock.finance.sina.com.cn/quotes_service/api/json_v2.php/Market_Center.getHQNodeData?page="+i+"&num=80&sort=symbol&asc=1&node="+hangye;//根據(jù)翻頁鏈接規(guī)律,拼翻頁
u.title=hangye;//返回鏈接名稱為行業(yè)
u.tmplid=2;//關(guān)聯(lián)模板2
RESULT.AddLink(u);
}
⑥采集預(yù)覽,如下圖所示,表示翻頁鏈接已生成。
4.采集公司鏈接
①在瀏覽器中打開幾個公司鏈接,可發(fā)現(xiàn)規(guī)律為:
②而公司id則在模板01獲取到的翻頁鏈接請求中,采集預(yù)覽,在瀏覽器中打開任意一個翻頁請求,經(jīng)觀察發(fā)現(xiàn),這是一個json,公司id為每個對象的symbol值。
③新建模板02,并在其下新建一個鏈接抽取
④腳本如下所示:
腳本文本:
varur=URL.urlname;//定義ur變量為當前請求鏈接,即翻頁請求鏈接
vardoc=EXTRACT.OpenDoc(CHANN,ur,"");//打開請求
vartstr=doc.GetDom().GetSource();//打開請求中的dom樹,并獲取源碼,定義源碼為tstr
jScriptjs;//定義一個js
varobj=js.RunJson(tstr);//執(zhí)行tstr代碼并返回一個對象
for(vari=0;i<=79;i++){
varobj_a=obj[i];//定義obj_a為第i個對象
vargoodsname=obj_a.symbol;
EXTRACT.CloseDoc(doc);//關(guān)閉請求
urlu;
u.urlname="https://finance.sina.com.cn/realstock/company/"+goodsname+"/nc.shtml";//拼公司鏈接
u.title=URL.title;//將標題設(shè)置為關(guān)鍵詞名稱
u.entryid=this.id;//定義goodsname為對象中的symbol值,即公司id
u.tmplid=3;//關(guān)聯(lián)模板03
RESULT.AddLink(u);
}
⑤點擊采集預(yù)覽,如下所示:
5.抽取公司高管鏈接
①新建一層模板03,并新建一個鏈接抽取。
②在瀏覽其中打開任意一個公司的鏈接,并再打開企業(yè)高管頁面鏈接。
觀察發(fā)現(xiàn),企業(yè)高管頁面鏈接規(guī)律為:
http://vip.stock.finance.sina.com.cn/corp/go.php/vCI_CorpManager/stockid/+公司id+.phtml
③填寫腳本如下:
④采集預(yù)覽,如下所示:
6.抽取高管鏈接
①新建模板04,在其下新建一個數(shù)據(jù)抽取,具體操作如下所示:
②填寫示例地址,復(fù)制任意一個企業(yè)高管鏈接,在下圖所示位置:
點擊右上角保存后,雙擊模擬瀏覽器空白處,模擬瀏覽器加載出該頁面。
③點擊模板預(yù)覽
④經(jīng)觀察發(fā)現(xiàn),高管鏈接規(guī)律為,都包含:http://vip.stock.finance.sina.com.cn/corp/view/vCI_CorpManagerInfo.php?stockid=
⑤地址過濾,將地址中含有http://vip.stock.finance.sina.com.cn/corp/view/vCI_CorpManagerInfo.php?stockid=的鏈接都過濾出來。
7.抽取高管數(shù)據(jù)
①新建模板05,在其下新建一個數(shù)據(jù)抽取。
②關(guān)聯(lián)模板,將模板04關(guān)聯(lián)至模板05。
填寫示例地址,將任意一個高管鏈接填寫至如下位置:
③新建一個數(shù)據(jù)表單,具體步驟和字段屬性如下所示:
④關(guān)聯(lián)數(shù)據(jù)表單,如下圖所示:
⑤數(shù)據(jù)取值
A.uname:打開瀏覽器,F(xiàn)12,查看高管名稱,發(fā)現(xiàn)其在源碼中,如下圖所示。
使用腳本取值,具體如下圖所示:
B.usex:使用定位取值的方法,進行取值。
C.ubirth:定位取值(同上)
D.Uedu:定位取值(同上)
E.Country:定位取值(同上)
F.Intro:定位取值(同上)
G.Company:定位取值(同上)
⑥采集預(yù)覽
l采集步驟
模板配置完成,采集預(yù)覽沒有問題后,可以進行數(shù)據(jù)采集。
①首先要建立采集數(shù)據(jù)表:
選擇【數(shù)據(jù)建表】,點擊【表單列表】中該模板的表單,在【關(guān)聯(lián)數(shù)據(jù)表】中選擇【創(chuàng)建】,表名稱自定義,這里命名為【qiyegaoguan】(注意命名不能用數(shù)字和特殊符號),點擊【確定】。創(chuàng)建完成,勾選數(shù)據(jù)表,并點擊右上角保存按鈕。
②選擇【數(shù)據(jù)采集】,勾選任務(wù)名稱,點擊【開始采集】,則正式開始采集。
③采集中:
④采集結(jié)束后,可以在【數(shù)據(jù)瀏覽】中,選擇數(shù)據(jù)表查看采集數(shù)據(jù),并可以導(dǎo)出數(shù)據(jù)。
⑤導(dǎo)出的文件打開如下圖所示: