利用selenium訪問某網站實現模擬人機交互爬蟲

   高考剛結束,堂侄面臨志願投遞的問題,之前用jsoup模擬抓取過不少網站,但是抓取高考信息網(gkcx.eol.cn)的時候遇到了問題,部分接口返回的內容爲密文,查看網站js,應該是採用了PBKDF2加密方式,而且加密方式也挺複雜,走進了死衚衕。

   google查詢類似問題,發現了selenium可以用來實現瀏覽器自動化功能:模擬用戶點擊,操作瀏覽器的組件實現翻頁等。

   https://gkcx.eol.cn/linespecialty?province=&zytype=&schoolyear=2018&schoolpc=&luqutype=理科

   模擬此頁面的訪問,發現問題如下:

   1.部分專業默認展示的條目數不全,需要再次點擊專業門類下對應的專業(根據cssSelector獲取到對應的專業對應的dom,並點擊,此處添加了超時等待並重新獲取頁面的dom數據)

   2.需要點擊末頁獲取總頁數(模擬點擊);

   3.非末頁的數據需要點擊下一頁查看分頁數據

   4.ajax頁面內容請求超時設置等待時間(超時等待新的dom重新加載完成)

       首先定義一個wait,模擬超時等待

    WebDriverWait wait = new WebDriverWait(webDriver, 15);

          發生dom變化時

         wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector("#.")));//cssSelector可採用jquery選擇器對應的語法

   5.數據存儲方式(定爲excel,採用poi工具進行存儲)

   

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章