Python調用Selenium動態加載JS

Selenium

1.安裝與配置

selenium是一個可以用來模仿用戶使用瀏覽器的工具,它其實是作為一個接口讓你的程序可以模擬瀏覽器的真實訪問,所以一般也拿來做自動化測試。

>>>pip3 install selenium ?安裝

另外,selenium實際上需要通過瀏覽器的driver來操縱瀏覽器,所以在使用selenium操縱所需瀏覽器時,需要先安裝對應的瀏覽器的driver文件,一般的driver文件就是一個比較小的可執行文件,例如下圖就是Chrome的driver文件。

chromedriver

安裝好后,就可以在程序中使用了,以下是初始化的代碼,其中參數executable_path后就填寫driver文件的路徑就好了。

初始化
配置路徑

2.獲取網頁源碼

當執行以下幾行代碼時,程序會自動打開一個瀏覽器頁面,以及打印通過JS加載后生成當一個html頁面。

selenium自動打開頁面

2.獲取網頁元素的查找

selenium自帶的文本解析方法

當然,如果你不習慣用selenium自帶的網頁解析方法,我們也可以用BeautifulSoup.

引入Beautifulsoup解析

當然,如果你想對取出的元素進行其它操作,例如點擊,那么就必須使用selenium自帶的方法。

點擊元素

3.模擬登錄

我們可以用send_keys方法向input標簽輸入值,包括用戶、密碼進行登錄

填充數據

4.模擬鼠標滑動

5.設置chromedriver不加載圖片

有時候,在特定情況下為了提高爬蟲效率,不希望加載圖片,這時可以進行一定的設置。

chromedriver不加載圖片的設置

PhantomJS

PhantomJS是一個無界面瀏覽器,這個瀏覽器比一般的有界面瀏覽器要輕量,某些時候效率也更高,但是請注意:多進程情況下這個瀏覽器性能會下降很嚴重! 另外在某些Linux、Ubuntu系統沒有界面時,就可以使用這個瀏覽器。

安裝:http://phantomjs.org/download.html

其它方面的使用和上面其它瀏覽器一樣。

其它瀏覽器的無界面訪問

對于python來說,除了PhantomJS外,在其它瀏覽器上也可以進行無界面訪問:

1.安裝pyvirtualdisplay

>>>pip3 install pyvirtualdisplay

2.配置pyvirtualdisplay

每次打開browser前,添加如下幾行代碼就可以進行無界面訪問了。

配置pyvirtualdisplay

另外,需要注意的是,這個庫只能在Linux下運行,當然windows下需要無界面運行的可能性也不大。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容