(四)爬蟲(chóng)-入門2

接上次的程序。上次的程序可以做到將一個(gè)頁(yè)面上的圖片爬取下來(lái),但是這種網(wǎng)站通常有多頁(yè),需要將每頁(yè)的圖片都爬下來(lái)。


相關(guān)工具及版本:

(1)??Selenium 3.141。Selenium [1]?是一個(gè)用于Web應(yīng)用程序測(cè)試的工具。Selenium測(cè)試直接運(yùn)行在瀏覽器中,就像真正的用戶在操作一樣?;旧纤梢阅M真實(shí)用戶的所有操作。

(2)??Chrome瀏覽器驅(qū)動(dòng)?2.45。注意這個(gè)驅(qū)動(dòng)要對(duì)應(yīng)自己chrome瀏覽器的版本,可以去https://sites.google.com/a/chromium.org/chromedriver/(需要over the wall)查找與自己瀏覽器對(duì)應(yīng)的版本并且下載。安裝過(guò)程很麻煩??????。本來(lái)是要用phantomjs的,但是最新的selenium已經(jīng)不支持phantomjs了:Selenium support for PhantomJS has been deprecated, please use headless versions of Chrome or Firefox instead。


例子:爬取https://ibaotu.com/ui/15-91803-0-0-0-1.html的ui所有頁(yè)面的圖片。

?代碼在上一個(gè)例子上進(jìn)行改造,主要改造點(diǎn)在于:

(1)????模擬點(diǎn)擊下一頁(yè)的操作,需要使用Selenium的一個(gè)方法來(lái)執(zhí)行js代碼。

driver.find_element_by_class_name("next").click()

在這個(gè)頁(yè)面中,下一頁(yè)的按鈕都有一個(gè)標(biāo)簽class = “next”,通過(guò)找到這個(gè)標(biāo)簽,然后點(diǎn)擊下一頁(yè)。

(2)????稍微修改一下邏輯部分

driver = webdriver.Chrome()?#指定使用的瀏覽器,初始化webdrive


代碼
結(jié)果

注:在這個(gè)例子里面,因?yàn)槊恳豁?yè)的地址都是有規(guī)律的,所以不用模擬點(diǎn)擊下一頁(yè),直接生成地址就可以爬取,但是通過(guò)selenium可以完成一些其它的操作,例如模擬下拉加載。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容