更新時間:2020-12-11 來源:黑馬程序員 瀏覽量:
Selenium是一個Web的自動化測試工具,可以根據我們的指令,讓瀏覽器自動加載頁面,獲取需要的數據,甚至頁面截屏,或者判斷網站上某些動作是否發(fā)生。
Selenium自己不帶瀏覽器,不支持瀏覽器的功能,它需要與第三方瀏覽器結合在一起才能使用。但是我們有時候需要讓它內嵌在代碼中運行,所以我們可以用一個叫PhantomJS的工具代替真實的瀏覽器。
Selenium庫里有個叫WebDriver的API。WebDriver有點兒像可以加載網站的瀏覽器,但是它也可以像BeautifulSoup或者其他Selector對象一樣用來查找頁面元素,與頁面上的元素進行交互(發(fā)送文本、點擊等),以及執(zhí)行其他動作來運行網絡爬蟲。
PhantomJS是一個基于Webkit的“無界面”(headless)瀏覽器,它會把網站加載到內存并執(zhí)行頁面上的JavaScript,因為不會展示圖形界面,所以運行起來比完整的瀏覽器要高效。相比傳統的Chrome或Firefox瀏覽器等,資源消耗會更少。
如果我們把Selenium和PhantomJS結合在一起,就可以運行一個非常強大的網絡爬蟲了,這個爬蟲可以處理JavaScript、Cookie、headers,以及任何我們真實用戶需要做的事情。
主程序退出后,selenium不保證phantomJS也成功退出,最好手動關閉phantomJS進程。(有可能會導致多個phantomJS進程運行,占用內存)。
猜你喜歡:
redis緩存原理與實現:為什么redis可以做緩存?