




1. Q:如何獲取板塊日線K線圖中的數(shù)據(jù)?
? ? A:圖中的K線圖不是flash動畫,鼠標移動,是會顯示每天的價格情況,因此猜測是JS動態(tài)加載生成的 通過F12抓包 無找到相應(yīng)的js文件 運氣使然 無意間點到K線圖的+-縮放鍵 新增了兩個文件 2017.js、2018.js 里面便有想要的數(shù)據(jù),分別是17年和18年每天的數(shù)據(jù) 數(shù)據(jù)格式對應(yīng)為日期、開盤價、最高價、最低價、收盤價、成交量、成交額? 獲取即可

2. Q:2017.js和2018.js的網(wǎng)址 打開或者requests后并無相應(yīng)數(shù)據(jù),如何解決? 如半導(dǎo)體及元件板塊的js網(wǎng)址是http://d.10jqka.com.cn/v4/line/bk_881121/01/2017.js 打開后是404
? ?A:requests添加headers屬性 headers屬性中添加user-agent、Referer和Cookie

3. Q:cookie容易失效 沒爬幾個網(wǎng)址就失效了,該如何解決?
????A:因為沒有登錄 所以網(wǎng)址給的是臨時cookie 極其容易失效 兩個解決辦法:1:注冊一個同花順賬號 登陸后 給的cookie失效更長 2.用 selenium模擬瀏覽器登錄,獲取每次的臨時cookie 這樣就不會失效
我選擇了第二種方法 第一種方法使用賬號的cookie,容易被封賬號,也懶得注冊一個賬號 第二種方法的缺點就是每次都會打開一個瀏覽器 有點耗內(nèi)存 不過實測沒問題?
4. Q:用selenium模擬登陸,每次都會彈出瀏覽器 一閃一閃? 光速開始又光速關(guān)閉 就像老有人在眼前晃 如何解決?
????A:使用無頭模式 即表面不看到瀏覽器 和PhantomJS一樣 那為啥不用PhantomJS呢 因為selenium不再支持了嘛

5.Q:獲取成分股中 有的板塊只有一個 有的有多頁 如何批量處理?

????A:判斷有沒有“1/N”這樣的標簽 如果有則保存N 循環(huán)每一頁到N位置 如 圖中是1/4 獲取4這個數(shù) 然后從1,2,3,4 循環(huán)到4? 修改網(wǎng)頁中的page即可 沒有標簽則默認取第一頁
用try except 實現(xiàn)判斷有無標簽? 并用yield url 保存網(wǎng)址

6.Q:抓取行業(yè)歷史數(shù)據(jù)及成分股 耗時比較長 如單一個成分股 先保存所有的行業(yè)代碼 再進入行業(yè)的主頁 再獲取當前頁成分股 再點擊下一頁 直到?jīng)]有 共有保存了3500多只股票及對應(yīng)的成分股 耗時半小時 有沒有辦法加快爬取速度?
????A:使用多線程? 開啟pool池 實測半小時縮短為15分鐘 還是有點效果的