動態網頁就是指動態內容,我們每一次瀏覽網頁的內容可能都不同,例如:每日更新的股市資訊、商品價格和當日新聞等,或因使用者輸入不同的關鍵字,而回傳不同的查詢結果。動態網頁可以分成兩種:客戶端動態網頁和伺服端動態網頁。
客戶端動態網頁
客戶端動態網頁是在瀏覽器使用客戶端腳本語言JavaScript,建立產生的動態網頁內容,網頁內容是在使用者的電腦產生內容,並不是在 Web 伺服器,其產生HTML網頁內容的過程有兩種
1.從 Web 伺服器下載內含 JavaScipt 程式碼的 HTML 網頁後,瀏覽器執行 JevaSoript 程式碼產生最後顯示的網頁內容,並與使用者互動。
2.從 Web 伺服器下載內含 JavaScript 程式碼的 HTML 網頁後,JavaSoript程式會依照使用者互動才使用AJAX技術從背景送出HTTP請求來取得產生網頁內容的資料。
伺服端動態網頁
在Web伺服器使用伺服端腳本語言,例如:PHP、ASP.NET 和JSP 等,在伺服器執行伺服端腳本程式來產生回應至客戶端的HTML網頁內容,例如:登入表單、留言版、商品清單和購物車等。
對於網路爬蟲來說,動態內容是指使用 JavaScript 程式碼產生的HTML網頁內容,這些網頁內容在瀏覽器檢視原始程式碼時,是看不到對應的HTML標籤,所以無法使用 Beautiful Soup 或lxml來爬取資料。
Selenium自動瀏覽器
Selenium 是開放原始碼Web應用程式的軟體測試框架,一組跨平台的自動瀏覽器,本來目的是幫助我們自動測試開發的Web應用程式。對於網路爬蟲來說,Selenium 可以幫助我們擷取動態內容和與 HTML 表單或網頁進行互動。
基本上,Selenium 是啟動真實瀏覽器來進行網站操作自動化,不只可以使用 CSS 選擇器和 XPath表達式定位網頁資料來擷取即時的內容,包含JavaScript程式碼產生的HTML標籤,也適用AJAX技術的客戶端動態網頁資料的擷取。