selenium用法詳解【從入門到實戰】【Python爬蟲】【篇一】

      網友投稿 1240 2022-05-30

      簡介

      Selenium 是最廣泛使用的開源 Web UI(用戶界面)自動化測試套件之一。Selenium 支持的語言包括C#,Java,Perl,PHP,Python 和 Ruby。目前,Selenium Web 驅動程序最受 Python 和 C#歡迎。 Selenium 測試腳本可以使用任何支持的編程語言進行編碼,并且可以直接在大多數現代 Web 瀏覽器中運行。在爬蟲領域 selenium 同樣是一把利器,能夠解決大部分的網頁的反爬問題。下面就進入正式的 study 階段。

      selenium安裝

      打開 cmd,輸入下面命令進行安裝。

      pip install -i https://pypi.douban.com/simple selenium

      執行后,使用 pip show selenium 查看是否安裝成功。

      安裝瀏覽器驅動

      針對不同的瀏覽器,需要安裝不同的驅動。下面列舉了常見的瀏覽器與對應的驅動程序下載鏈接,部分網址需要 “科學上網” 才能打開哦(dddd)。

      Firefox 瀏覽器驅動:Firefox

      Chrome 瀏覽器驅動:Chrome

      IE 瀏覽器驅動:IE

      Edge 瀏覽器驅動:Edge

      PhantomJS 瀏覽器驅動:PhantomJS

      Opera 瀏覽器驅動:Opera

      這里以安裝 Chrome 驅動作為演示。但 Chrome 在用 selenium 進行自動化測試時還是有部分 bug ,常規使用沒什么問題,但如果出現一些很少見的報錯,可以使用 Firefox 進行嘗試,畢竟是 selenium 官方推薦使用的。

      確定瀏覽器版本

      在新標簽頁輸入 chrome://settings/ 進入設置界面,然后選擇 【關于 Chrome】

      查看自己的版本信息。這里我的版本是94,這樣在下載對應版本的 Chrome 驅動即可。

      下載驅動

      打開 Chrome驅動 。單擊對應的版本。

      根據自己的操作系統,選擇下載。

      下載完成后,壓縮包內只有一個 exe 文件。

      將 chromedriver.exe 保存到任意位置,并把當前路徑保存到環境變量中(我的電腦>>右鍵屬性>>高級系統設置>>高級>>環境變量>>系統變量>>Path),添加的時候要注意不要把 path 變量給覆蓋了,如果覆蓋了千萬別關機,然后百度。添加成功后使用下面代碼進行測試。

      from selenium import webdriver # Chrome瀏覽器 driver = webdriver.Chrome()

      定位頁面元素

      打開指定頁面

      使用 selenium 定位頁面元素的前提是你已經了解基本的頁面布局及各種標簽含義,當然如果之前沒有接觸過,現在我也可以帶你簡單的了解一下。

      以我們熟知的 CSDN 為例,我們進入首頁,按 【F12】 進入開發者工具。紅框中顯示的就是頁面的代碼,我們要做的就是從代碼中定位獲取我們需要的元素。

      想要定位并獲取頁面中的信息,首先要使用 webdriver 打開指定頁面,再去定位。

      from selenium import webdriver # Chrome瀏覽器 driver = webdriver.Chrome() driver.get('https://www.csdn.net/')

      執行上面語句后會發現,瀏覽器打開 CSDN 主頁后會馬上關閉,想要防止瀏覽器自動關閉,可以添加下面代碼。

      # 不自動關閉瀏覽器 option = webdriver.ChromeOptions() option.add_experimental_option("detach", True) # 將option作為參數添加到Chrome中 driver = webdriver.Chrome(chrome_options=option)

      這樣將上面的代碼組合再打開瀏覽器就不會自動關閉了。

      from selenium import webdriver # 不自動關閉瀏覽器 option = webdriver.ChromeOptions() option.add_experimental_option("detach", True) # 注意此處添加了chrome_options參數 driver = webdriver.Chrome(chrome_options=option) driver.get('https://www.csdn.net/')

      下面我們再來看看幾種常見的頁面元素定位方式。

      id 定位

      標簽的 id 具有唯一性,就像人的身份證,假設有個 input 標簽如下。

      我們可以通過 id 定位到它,由于 id 的唯一性,我們可以不用管其他的標簽的內容。

      driver.find_element_by_id("toolbar-search-input")

      name 定位

      name 指定標簽的名稱,在頁面中可以不唯一。假設有個 meta 標簽如下

      我們可以使用 find_element_by_name 定位到 meta 標簽。

      driver.find_element_by_name("keywords")

      class 定位

      class 指定標簽的類名,在頁面中可以不唯一。假設有個 div 標簽如下

      我們可以使用 find_element_by_class_name 定位到 div 標簽。

      driver.find_element_by_class_name("toolbar-search-container")

      tag 定位

      每個 tag 往往用來定義一類功能,所以通過 tag 來識別某個元素的成功率很低,每個頁面一般都用很多相同的 tag ,比如:\、\ 等。這里還是用上面的 div 作為例子。

      我們可以使用 find_element_by_class_name 定位到 div 標簽。

      driver.find_element_by_tag_name("div")

      xpath 定位

      xpath 是一種在 XML 文檔中定位元素的語言,它擁有多種定位方式,下面通過實例我們看一下它的幾種使用方式。

      ...

      ...
      相關文章
      亚洲国产欧美国产综合一区 | 亚洲精品国产精品乱码视色| 亚洲av最新在线观看网址| 亚洲人成人77777网站不卡| 亚洲成人激情在线| 亚洲Av永久无码精品三区在线| 亚洲色婷婷一区二区三区| 亚洲综合激情另类专区| 亚洲AV无码成人精品区大在线| 精品久久久久久亚洲综合网| 亚洲av永久中文无码精品综合| 亚洲AV日韩AV永久无码色欲 | 国产av天堂亚洲国产av天堂| 亚洲精品国产美女久久久| 国产成人A人亚洲精品无码| 亚洲αv久久久噜噜噜噜噜| 亚洲国产精品无码久久一线 | 亚洲精品美女久久7777777| 亚洲av日韩av永久无码电影| 免费在线观看亚洲| 中文字幕一精品亚洲无线一区| 国产精品亚洲精品日韩已方| 亚洲五月综合缴情在线观看| 国产国拍亚洲精品mv在线观看| 亚洲色四在线视频观看| 亚洲视频在线免费看| 亚洲人成网站日本片| 亚洲夂夂婷婷色拍WW47| 亚洲sm另类一区二区三区| 亚洲av无码不卡私人影院| 久久久久久亚洲精品不卡| 国产精品亚洲а∨无码播放| 久久久亚洲精品视频| 亚洲精品中文字幕麻豆| 亚洲综合偷自成人网第页色 | 久久精品亚洲综合| 亚洲欧洲日韩国产| 亚洲中文精品久久久久久不卡| www.91亚洲| 亚洲中文字幕久久精品无码APP| 亚洲va在线va天堂va四虎|