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