日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

python爬蟲09 | 上來,自己動 !這就是 selenium 的牛逼之處

 小帥b 2021-10-12

作為一個男人

在最高光的時刻

就是說出那句

之后

還不會被人打

...

雖然在現(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)的地方下載就行了

Chrome:https://sites.google.com/a/chromium.org/chromedriver/downloads
Edge:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
Firefox:https://github.com/mozilla/geckodriver/releases
Safari:https:///blog/6900/webdriver-support-in-safari-10/

下載完之后

要配置一下環(huán)境變量

接著打開 pycharm

擼點(diǎn)代碼

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.baidu.com")

input = driver.find_element_by_css_selector('#kw')
input.send_keys("蒼老師照片")

button = driver.find_element_by_css_selector('#su')
button.click()

運(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')
input.send_keys("蒼老師照片")

輸入完了之后呢

我們就獲取到搜索這個按鈕

然后點(diǎn)擊

button = driver.find_element_by_css_selector('#su')
button.click()

就這樣完成了一次自動的百度搜索

當(dāng)我們使用驅(qū)動打開了一個頁面

這時候其實沒什么鳥用

因為我們要對那些元素進(jìn)行操作

就像剛剛我們要獲取輸入框然后輸入一些內(nèi)容

還有獲取按鈕點(diǎn)擊什么的

selenium 提供了挺多方法給我們獲取的

當(dāng)我們要在頁面中獲取一個元素的時候

可以使用這些方法

  • find_element_by_id

  • find_element_by_name

  • find_element_by_xpath

  • find_element_by_link_text

  • find_element_by_partial_link_text

  • find_element_by_tag_name

  • find_element_by_class_name

  • find_element_by_css_selector

想要在頁面獲取多個元素呢

就可以這樣

  • find_elements_by_name

  • find_elements_by_xpath

  • find_elements_by_link_text

  • find_elements_by_partial_link_text

  • find_elements_by_tag_name

  • find_elements_by_class_name

  • find_elements_by_css_selector

比如我們打開了一個頁面

是這樣的 HTML

<html>
<body>
 <form id="loginForm">
  <input name="username" type="text" />
  <input name="password" type="password" />
  <input class="login" name="continue" type="submit" value="Login" />
 </form>
</body>
<html>

可以通過 id 獲取 form 表單

login_form = driver.find_element_by_id('loginForm')

通過 name 獲取相應(yīng)的輸入框

username = driver.find_element_by_name('username')
password = driver.find_element_by_name('password')

通過 xpath 獲取表單

login_form = driver.find_element_by_xpath("/html/body/form[1]")
login_form = driver.find_element_by_xpath("http://form[1]")
login_form = driver.find_element_by_xpath("http://form[@id='loginForm']")

通過標(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"
XPATH = "xpath"
LINK_TEXT = "link text"
PARTIAL_LINK_TEXT = "partial link text"
NAME = "name"
TAG_NAME = "tag name"
CLASS_NAME = "class name"
CSS_SELECTOR = "css selector"

當(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來個好看

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多