1. 程式人生 > >記一次替朋友拿公開證券資料!

記一次替朋友拿公開證券資料!

前些日子,朋友突然告訴我說幫我寫份程式碼,抓一下金融資料,首先我一看到頁面,感覺 嗯 不難,然後動手寫程式碼, 程式碼完成執行的時候發現什麼也沒有,再去看頁面的ajax傳送的url,發現原來有個加密欄位,,太粗心了!!沒有思路,看看js程式碼是怎麼生成的,,發現是前端隨機生成的,我的天,這麼一順思路知道為什麼程式碼沒有東西了,因為他的隨機數開啟一次網站只用一次,我拿了用過的隨機數用程式碼去執行,嗯 是這樣的,頓時腦子混亂了,怎麼搞?怎麼搞???但是,作為碼農怎麼能夠輕言放棄???換個思路接著搞,selenium,自動化測試工具,嗯,很強大,尤其是對於爬蟲來說如虎添翼,不就是隨機數驗證麼,selenium就能夠完美解決。

接下來分享一下用自動化測試工具爬某金融資料的思路:我們利用selenium控制谷歌瀏覽器,這樣隨機碼也不需要我們去想辦法生成,嗯,攻克一個問題。接下來還有第二個,在網站的開啟頁面會有彈窗讓我們等待五秒鐘,嗯 ,我寫了程式碼沒起到作用,不過這個不是問題,先略過,我們採用粗暴的形式 程式碼延時操作,我們手動點選彈窗按鈕,,然後我們根據標籤的屬性採用selenium的標籤選擇器(嗯,我一般都這麼叫他),去儲存標籤的內容,隨後程式碼click點選下一頁按鈕,嗯,點選按鈕沒有問題下一頁可以跳轉,但是還是沒有資料,天呀小腦瓜子生疼。突然想法如雨後春筍一樣蹭蹭的冒,我可以把頁面先生成dom樹,然後用xpath解析,嗯,,接著嘗試一下,更換程式碼,歷時五個小時終於按照思路完成了迴圈爬取拿到15W的資料。

第一次寫部落格,小手生疏,只是說一下自己的思路,程式碼就不放了,有興趣的可以私信我,我看到會回覆,給你程式碼不如幫你擴充套件思路,授人以魚不如授人以漁。