數據結構:
1.從網站獲取的數據保存為dataframe格式
2.解析時以dataframe格式傳遞
3.下載的時候也是以dataframe格式
4.從網站獲取數據如果出錯,出錯的日期以txt格式記入日志
行為類:
1.獲取基礎數據:參照yspider,略
2.解析數據:參照yspider,略,返回的frm數據帶有狀態碼:100
3.下載:每下載一個文件,就將frm對應行的狀態碼改為200并保存到本地。如果遇到程序中斷,則讀取保存的文件,識別出狀態碼100的行,繼續下載。
? ? 1)函數1:核心下載程序,遍歷frm每一行下載,下載成功將狀態碼調為200,保存到本地
? ? 2)函數2:重啟程序,利用try except捕捉錯誤,如能捕捉到,則跳過出錯行,繼續下載下面的,直至遍歷完成。然后回過頭去數一數哪些還沒有下載,識別出對應的狀態碼,繼續進行新的遍歷去下載,如此循環n次。
? ? 3)函數3:下載的主程序,將1)2)組合起來,同時設置兩個讀取本次下載原始數據的途徑:a、如果下載中間過程的文件不存在,則讀取干凈的,尚未進行下載的數據文件;b、如果存在中間下載文件,則讀取中間下載文件。
流程類:
1.類1:完成行為類1、2:輸入某個時間段,返回這個時間段內所有的待下載文件數據的frm
? ? 1)函數1:根據行為類1執行每一天的數據獲取程序
? ? 2)函數2:重啟程序,利用try except捕捉錯誤,如能捕捉到,則重啟該日的函數1,如遇到重啟多次的問題則將txt保存到日志,待后續解決。
? ? 3)函數3:獲取某個時間段內所有天數的數據
? ? 4)函數4:將數據根據行為類2進行解析,得到待下載數據
2.類2:下載:根據行為類3的下載程序執行下載。