從新浪財經或者雅虎財經獲取到所有A股數據?
可以用ForeSpider數據采集系統試一下,系統已將框架都搭建好,直接根據網頁結構進行相應配置即可,還有大量實戰教程可以參考。這是采集新浪財經上市公司高管信息的教程,可供您參考。
采集網站
【場景描述】采集新浪財經所有行業板塊中上市公司的高管信息。
【源網站介紹】
新浪財經,提供7X24小時財經資訊及全球金融市場報價,覆蓋股票、債券、基金、期貨、信托、理財、管理等多種面向個人和企業的服務。
【使用工具】前嗅ForeSpider數據采集系統
【入口網址】
http://finance.sina.com.cn/stock/sl/#sinaindustry_1
【采集內容】
采集新浪財經所有行業板塊中上市公司的高管信息。
【采集效果】如下圖所示:
l 思路分析
配置思路概覽:
l 配置步驟
1. 新建采集任務
選擇【采集配置】,點擊任務列表右上方【+】號可新建采集任務,將采集入口地址填寫在【采集地址】框中,【任務名稱】自定義即可,點擊下一步。
選擇列表鏈接,點擊完成按鈕,即創建任務完成。
2.獲取行業鏈接
①用瀏覽器打開該網頁,查看各行業的鏈接規律,發現行業鏈接規律為:http://vip.stock.finance.sina.com.cn/mkt/#new_+行業名稱首字母
比如:
http://vip.stock.finance.sina.com.cn/mkt/#new_cbzz (船舶制造)
http://vip.stock.finance.sina.com.cn/mkt/#new_tchy (陶瓷行業)
②所以獲取行業鏈接的方法為:將各行業關鍵詞的首字母設置為關鍵詞,用腳本拼接行業鏈接。
③設置關鍵詞,具體步驟如下所示:
關鍵詞文本如下:
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
④高級設置,設置一個關鍵詞參數,具體操作如下圖所示:
⑤編寫關鍵詞拼寫鏈接的腳本:
具體腳本文本如下:
var sear=EXTRACT.GetSearch(this); //關鍵詞獲取
var k=sear.Search();//查找關鍵詞
while(k){ //遍歷關鍵詞
url u;//定義一個url
u.urlname="http://vip.stock.finance.sina.com.cn/mkt/#"+k.wd;//拼接行業鏈接
u.title="新浪行業@"+k.wd;//將標題設置為關鍵詞名稱
u.entryid=this.id;
u.tmplid=1;//關聯模板1
k=sear.Search();//查找下一個關鍵詞
RESULT.AddLink(u);//輸出一個url值
}
⑥采集預覽,查看行業鏈接是否正確。
3. 獲取翻頁鏈接
①觀察發現,有部分行業數據量比較大,有多頁數據,需要翻頁。
打開【其他行業】板塊,發現4頁數據,點擊F12,右側出現請求,點擊第二頁,觀察發現請求:是翻頁請求鏈接。如下圖所示
補充:下圖為請求response轉譯后內容,可看出其中有第二頁中的內容,故確定此鏈接為翻頁請求鏈接。
②復制翻頁請求鏈接:
③同樣方法,找到第三頁和第四頁請求鏈接,并復制出來。
④觀察鏈接,發現規律如下圖所示:
⑤寫翻頁鏈接腳本,具體操作如下所示:
腳本文本:
var hangye=URL.title.Right("@");//定義hangye為當前鏈接標題@右側內容,即行業名稱首字母
url u;//定義一個url
for(var i=1;i<=3;i++){//for循環表示翻頁
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;//根據翻頁鏈接規律,拼翻頁
u.title = hangye; //返回鏈接名稱為行業
u.tmplid = 2;//關聯模板2
RESULT.AddLink(u);
}
⑥采集預覽,如下圖所示,表示翻頁鏈接已生成。
4. 采集公司鏈接
①在瀏覽器中打開幾個公司鏈接,可發現規律為:
②而公司id則在模板01獲取到的翻頁鏈接請求中,采集預覽,在瀏覽器中打開任意一個翻頁請求,經觀察發現,這是一個json,公司id為每個對象的symbol值。
③新建模板02,并在其下新建一個鏈接抽取
④腳本如下所示:
腳本文本:
var ur=URL.urlname;//定義ur變量為當前請求鏈接,即翻頁請求鏈接
var doc = EXTRACT.OpenDoc(CHANN, ur, "");//打開請求
var tstr = doc.GetDom().GetSource();//打開請求中的dom樹,并獲取源碼,定義源碼為tstr
jScript js;//定義一個js
var obj = js.RunJson(tstr);//執行tstr代碼并返回一個對象
for(var i=0;i<=79;i++){
var obj_a=obj[i];//定義obj_a為第i個對象
var goodsname=obj_a.symbol;
EXTRACT.CloseDoc(doc);//關閉請求
url u;
u.urlname="https://finance.sina.com.cn/realstock/company/"+goodsname+"/nc.shtml";//拼公司鏈接
u.title=URL.title;//將標題設置為關鍵詞名稱
u.entryid=this.id;//定義goodsname為對象中的symbol值,即公司id
u.tmplid=3;//關聯模板03
RESULT.AddLink(u);
}
⑤點擊采集預覽,如下所示:
5. 抽取公司高管鏈接
①新建一層模板03,并新建一個鏈接抽取。
②在瀏覽其中打開任意一個公司的鏈接,并再打開企業高管頁面鏈接。
觀察發現,企業高管頁面鏈接規律為:
http://vip.stock.finance.sina.com.cn/corp/go.php/vCI_CorpManager/stockid/+公司id+.phtml
③填寫腳本如下:
④采集預覽,如下所示:
6.抽取高管鏈接
①新建模板04,在其下新建一個數據抽取,具體操作如下所示:
②填寫示例地址,復制任意一個企業高管鏈接,在下圖所示位置:
點擊右上角保存后,雙擊模擬瀏覽器空白處,模擬瀏覽器加載出該頁面。
③點擊模板預覽
④經觀察發現,高管鏈接規律為,都包含: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.抽取高管數據
①新建模板05,在其下新建一個數據抽取。
②關聯模板,將模板04關聯至模板05。
填寫示例地址,將任意一個高管鏈接填寫至如下位置:
③新建一個數據表單,具體步驟和字段屬性如下所示:
④關聯數據表單,如下圖所示:
⑤數據取值
A. uname:打開瀏覽器,F12,查看高管名稱,發現其在源碼中,如下圖所示。
使用腳本取值,具體如下圖所示:
B. usex:使用定位取值的方法,進行取值。
C. ubirth:定位取值(同上)
D. Uedu:定位取值(同上)
E. Country:定位取值(同上)
F. Intro:定位取值(同上)
G. Company:定位取值(同上)
⑥采集預覽
l 采集步驟
模板配置完成,采集預覽沒有問題后,可以進行數據采集。
①首先要建立采集數據表:
選擇【數據建表】,點擊【表單列表】中該模板的表單,在【關聯數據表】中選擇【創建】,表名稱自定義,這里命名為【qiyegaoguan】(注意命名不能用數字和特殊符號),點擊【確定】。創建完成,勾選數據表,并點擊右上角保存按鈕。
②選擇【數據采集】,勾選任務名稱,點擊【開始采集】,則正式開始采集。
③采集中:
④采集結束后,可以在【數據瀏覽】中,選擇數據表查看采集數據,并可以導出數據。
⑤導出的文件打開如下圖所示: