1. 程式人生 > >ajax非同步載入網頁爬蟲

ajax非同步載入網頁爬蟲

一般的網頁,使用httpclient就能做到,但httpclient的設計初衷是一個基於http協議的客戶端,它並不是一個瀏覽器,也不具備瀏覽器的功能,所以針對ajax非同步載入的網頁,就無能為力了.
我本想也用java來做ajax非同步載入網頁的爬蟲,只可惜使用selenium的jar包時,出了很多問題,我沒能解決.最後還是選擇用了Python來寫.

搭建環境

python install -U selenium

這裡寫圖片描述

2.下載PhantomJS,這是一個無介面瀏覽器,通常用於web測試,用來做爬蟲是非常不錯的,當然,也可以用其他瀏覽器驅動.
下載地址:
http://phantomjs.org/


給phantomJS配置環境變數:
我直接把phantomJS.exe放到jdk的bin目錄下,這樣就不用配置了.

簡單例子

from selenium import webdriver
driver = webdriver.PhantomJS()
driver.get("http://bkjw.sxu.edu.cn/")
assert '山西大學教務網路管理系統' in driver.title
print(driver.title)
driver.quit()

需要注意的是get方法會一直等到頁面被完全載入,然後才會繼續程式
而ajax是非同步載入網頁,會導致WebDriver 不知道什麼時候載入玩了網頁