更新時(shí)間:2020年12月11日16時(shí)45分 來源:傳智教育 瀏覽次數(shù):
Selenium是一個(gè)Web的自動(dòng)化測試工具,可以根據(jù)我們的指令,讓瀏覽器自動(dòng)加載頁面,獲取需要的數(shù)據(jù),甚至頁面截屏,或者判斷網(wǎng)站上某些動(dòng)作是否發(fā)生。
Selenium自己不帶瀏覽器,不支持瀏覽器的功能,它需要與第三方瀏覽器結(jié)合在一起才能使用。但是我們有時(shí)候需要讓它內(nèi)嵌在代碼中運(yùn)行,所以我們可以用一個(gè)叫PhantomJS的工具代替真實(shí)的瀏覽器。
Selenium庫里有個(gè)叫WebDriver的API。WebDriver有點(diǎn)兒像可以加載網(wǎng)站的瀏覽器,但是它也可以像BeautifulSoup或者其他Selector對象一樣用來查找頁面元素,與頁面上的元素進(jìn)行交互(發(fā)送文本、點(diǎn)擊等),以及執(zhí)行其他動(dòng)作來運(yùn)行網(wǎng)絡(luò)爬蟲。
PhantomJS是一個(gè)基于Webkit的“無界面”(headless)瀏覽器,它會(huì)把網(wǎng)站加載到內(nèi)存并執(zhí)行頁面上的JavaScript,因?yàn)椴粫?huì)展示圖形界面,所以運(yùn)行起來比完整的瀏覽器要高效。相比傳統(tǒng)的Chrome或Firefox瀏覽器等,資源消耗會(huì)更少。
如果我們把Selenium和PhantomJS結(jié)合在一起,就可以運(yùn)行一個(gè)非常強(qiáng)大的網(wǎng)絡(luò)爬蟲了,這個(gè)爬蟲可以處理JavaScript、Cookie、headers,以及任何我們真實(shí)用戶需要做的事情。
主程序退出后,selenium不保證phantomJS也成功退出,最好手動(dòng)關(guān)閉phantomJS進(jìn)程。(有可能會(huì)導(dǎo)致多個(gè)phantomJS進(jìn)程運(yùn)行,占用內(nèi)存)。
猜你喜歡:
Python正則表達(dá)式re模塊常用函數(shù)有哪些?
NumPy數(shù)組對象介紹:ndarray對象的常用屬性
北京校區(qū)