天天看點

python 爬蟲爬取所有上市公司公告資訊(二)

。,。設計公告資訊爬蟲面臨的主要問題在上一篇文章已經叙述過了,這篇文章我們選擇合适的資料源和爬取的方式

首先選擇爬取的資料源,這裡筆者經過多方比較,最終選擇了東方财富網作為公告爬蟲的資料源。

下面以飛馬國際為例(002210)

python 爬蟲爬取所有上市公司公告資訊(二)

我們可以看到,東方财富網專門設有網頁儲存對應股票的公告資訊,但通過翻頁操作觀察位址欄,該網頁的股票公告連結是屬于ajax異步加載。

根據前面的知識,爬取這種網頁我們可以選擇selenium+phantomjs模拟浏覽器進行操作,或者通過構造接口拿到對應的資訊。

模拟浏覽器的方法速度較慢,這裡我們采用構造資料接口的方式。打開開發者工具進行翻頁操作。

python 爬蟲爬取所有上市公司公告資訊(二)
python 爬蟲爬取所有上市公司公告資訊(二)

新出現了js的請求,對應的url為資料的接口,打開網址

python 爬蟲爬取所有上市公司公告資訊(二)
python 爬蟲爬取所有上市公司公告資訊(二)

。,。嗯,确實是對應的股票公告資訊,但可惜并不是json格式,我們可以采用正規表達式擷取對應的連結

針對接口的網址進行分析,筆者經過幾次嘗試之後,總結出東方财富網資料接口url格式大概如下

http://data.eastmoney.com/notices/getdata.ashx?StockCode=?&CodeType=1&PageIndex=?&PageSize=50&rt=50239182

其中stockcode對應股票的代碼,pageindex對應公告的頁數

這表示我們隻要拿到對應的上市公司所有股票的代碼就可以構造出他們對應的公告資料url

股票代碼的擷取我們還是選擇東方财富網

股票代碼的網頁是純靜态網頁,直接使用xpath或者beautisfulsoup就可以抓取,比較簡單,這裡就不再贅述了。

将股票代碼爬取之後儲存為txt或csv檔案,在構造接口時直接使用。

。,。資料源已經標明,我們接下來建構資料的儲存結構。