|
作為一個(gè)男人 在最高光的時(shí)刻 就是說(shuō)出那句 之后 還不會(huì)被人打 ... 雖然在現(xiàn)實(shí)生活中你無(wú)法這樣 但是在這里 就讓你體驗(yàn)一番 那種呼風(fēng)喚雨的感覺(jué) 我們之前在爬取某些網(wǎng)站的時(shí)候 使用到了一些 python 的請(qǐng)求庫(kù) 模擬瀏覽器的請(qǐng)求 我們需要抓包啥的 能不能不這樣 可不可以就寫(xiě)幾行代碼 讓它自己去打開(kāi)瀏覽器 自己去請(qǐng)求我們要爬取的網(wǎng)站 自己去模擬我們的一些搜索 等等 反正就是 老子躺著,讓它自己動(dòng) 躺好 讓 selenium 滿足你的要求 怎么玩呢? 那么接下里就是 學(xué)習(xí) python 的正確姿勢(shì) 什么是 selenium ? 其實(shí)它就是一個(gè)自動(dòng)化測(cè)試工具,支持各種主流的瀏覽器 直到遇到了 python 轉(zhuǎn)身一變 selenium 變成了爬蟲(chóng)利器 我們先來(lái)安裝一下 pip install selenium接著我們還要下載瀏覽器驅(qū)動(dòng) 小帥b用的是 Chrome 瀏覽器 所以下載的是 Chrome 驅(qū)動(dòng) 當(dāng)然你用別的瀏覽器也闊以 去相應(yīng)的地方下載就行了
下載完之后 要配置一下環(huán)境變量 接著打開(kāi) pycharm 擼點(diǎn)代碼 from selenium import webdriver運(yùn)行一下 可以看到 它自己打開(kāi)了 Chrome 瀏覽器 訪問(wèn)了百度 搜索了蒼老師的照片 這就是 selenium 的魅力 我們來(lái)看下我們剛剛寫(xiě)的代碼 我們導(dǎo)入了 web 驅(qū)動(dòng)模塊 from selenium import webdriver接著我們創(chuàng)建了一個(gè) Chrome 驅(qū)動(dòng) driver = webdriver.Chrome()有了實(shí)例之后 相當(dāng)于我們有了 Chrome 瀏覽器了 接著使用 get 方法打開(kāi)百度 driver.get("https://www.baidu.com")打開(kāi)百度之后 我們獲取到輸入框 至于怎么獲取 等等會(huì)講 獲取到輸入框之后我們就往里面寫(xiě)入我們要搜索的內(nèi)容 input = driver.find_element_by_css_selector('#kw')輸入完了之后呢 我們就獲取到搜索這個(gè)按鈕 然后點(diǎn)擊 button = driver.find_element_by_css_selector('#su')就這樣完成了一次自動(dòng)的百度搜索 當(dāng)我們使用驅(qū)動(dòng)打開(kāi)了一個(gè)頁(yè)面 這時(shí)候其實(shí)沒(méi)什么鳥(niǎo)用 因?yàn)槲覀円獙?duì)那些元素進(jìn)行操作 就像剛剛我們要獲取輸入框然后輸入一些內(nèi)容 還有獲取按鈕點(diǎn)擊什么的 selenium 提供了挺多方法給我們獲取的 當(dāng)我們要在頁(yè)面中獲取一個(gè)元素的時(shí)候 可以使用這些方法
想要在頁(yè)面獲取多個(gè)元素呢 就可以這樣
比如我們打開(kāi)了一個(gè)頁(yè)面 是這樣的 HTML <html>可以通過(guò) id 獲取 form 表單 login_form = driver.find_element_by_id('loginForm')通過(guò) name 獲取相應(yīng)的輸入框 username = driver.find_element_by_name('username')通過(guò) xpath 獲取表單 login_form = driver.find_element_by_xpath("/html/body/form[1]")通過(guò)標(biāo)簽獲取相應(yīng)的輸入框 input1 = driver.find_element_by_tag_name('input')通過(guò) class 獲取相應(yīng)的元素 login = driver.find_element_by_class_name('login')用 Chrome 瀏覽器的審核元素 可以很方便獲取相應(yīng)的屬性 直接 copy 就完事了 如果你覺(jué)得 find_element_by_xxx_xxx 太長(zhǎng)了 那么你還可以這樣 driver.find_elements(By.ID, 'xxx')By.屬性和上面的是一樣的 ID = "id"當(dāng)然 我們玩的是爬蟲(chóng) 要的就是源代碼 我們已經(jīng)知道 通過(guò) driver = webdriver.Chrome()可以拿到瀏覽器對(duì)象 那么要獲取源代碼還不簡(jiǎn)單么? 獲取請(qǐng)求鏈接 driver.current_url獲取 cookies driver.get_cookies()獲取源代碼 driver.page_source獲取文本的值 input.textok 以上就是 selenium 的常用方法 想要了解更多相關(guān) selenium 的可以到官方文檔查看 https://selenium-python./ 下一次 小帥b將帶你使用它來(lái)爬取網(wǎng)站
本篇完 再見(jiàn) 近期文章 python爬蟲(chóng)08 | 你的第二個(gè)爬蟲(chóng),要過(guò)年了,爬取豆瓣最受歡迎的250部電影慢慢看 python爬蟲(chóng)07 | 有了 BeautifulSoup ,媽媽再也不用擔(dān)心我的正則表達(dá)式了 python爬蟲(chóng)06 | 你的第一個(gè)爬蟲(chóng),爬取當(dāng)當(dāng)網(wǎng) Top 500 本五星好評(píng)書(shū)籍
掃一掃 學(xué)習(xí) Python 沒(méi)煩惱 堅(jiān)持原創(chuàng) 給小帥b來(lái)個(gè)好看
|
|
|