您好,登錄后才能下訂單哦!
今天小編給大家分享一下selenium環(huán)境搭建及基本元素定位的方法是什么的相關(guān)知識點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
由于requests模塊是一個(gè)不完全模擬瀏覽器行為的模塊,只能爬取到網(wǎng)頁的HTML文檔信息,無法解析和執(zhí)行CSS、JavaScript代碼,因此需要我們做人為判斷;
1、什么是selenium selenium最初是一個(gè)自動(dòng)化測試工具,而爬蟲中使用它主要是為了解決requests無法執(zhí)行javaScript代碼的問題。selenium模塊本質(zhì)是通過驅(qū)動(dòng)瀏覽器,完全模擬瀏覽器的操作,比如跳轉(zhuǎn)、輸入、點(diǎn)擊、下拉等,來拿到網(wǎng)頁渲染之后的結(jié)果,可支持多種瀏覽器;由于selenium解析執(zhí)行了CSS、JavaScript所以相對requests它的性能是低下的;
2、selenium的用途
1)selenium可以驅(qū)動(dòng)瀏覽器自動(dòng)執(zhí)行自定義好的邏輯代碼,也就是可以通過代碼完全模擬成人類使用瀏覽器自動(dòng)訪問目標(biāo)站點(diǎn)并操作,那我們也可以拿它來做爬蟲。
2)selenium本質(zhì)上是通過驅(qū)動(dòng)瀏覽器,完全模擬瀏覽器的操作,比如跳轉(zhuǎn)、輸入、點(diǎn)擊、下拉等...進(jìn)而拿到網(wǎng)頁渲染之后的結(jié)果,可支持多種瀏覽器
1、下載selenium模塊:pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple selenium或者在pycharm中下載
2、安裝瀏覽器驅(qū)動(dòng)1) Google瀏覽器驅(qū)動(dòng)(在下載驅(qū)動(dòng)之前,查看一下chrome瀏覽器的版本號,如下:
1)谷歌驅(qū)動(dòng)下載地址:
http://chromedriver.storage.googleapis.com/index.html
當(dāng)然也可以去官網(wǎng)找最新的版本,官網(wǎng): https://sites.google.com/a/chromium.org/chromedriver/downloads另外注意:把下載好的chromedriver.exe放到python安裝路徑的scripts目錄中即可
2) firefox瀏覽器驅(qū)動(dòng):selenium3默認(rèn)支持的webdriver是Firfox,而Firefox需要安裝geckodriver下載鏈接:https://github.com/mozilla/geckodriver/releases
3) 測試是否安裝成功
from selenium import webdriver browser=webdriver.Chrome() # # 打開瀏覽器 browser.get('https://baidu.com') s=browser.find_element_by_id('kw') # 其中kw便是頁面中某個(gè)元素的id值 print(s)
from selenium import webdriver driver = webdriver.Firefox() # Firefox瀏覽器 driver = webdriver.Chrome() # Chrome瀏覽器 driver = webdriver.Ie() # Ie瀏覽器 driver = webdriver.Edge() # Edge瀏覽器 driver = webdriver.PhantomJS() # PhantomJS()
<html> <head> <body link="#0000cc"> <a id="result_logo" href="/" onmousedown="return c({'fm':'tab','tab':'logo'})"> <form id="form" class="fm" name="f" action="/s"> <span class="soutu-btn"></span> <input id="kw" class="s_ipt" name="wd" value="" maxlength="255" autocomplete="off">
# 通過 id 定位 dr.find_element_by_id("kw") # 通過name定位: dr.find_element_by_name("wd") # 通過class name定位: dr.find_element_by_class_name("s_ipt") # 通過tag name定位: dr.find_element_by_tag_name("input") # 通過 xpath 定位的幾種寫法 dr.find_element_by_xpath("//*[@id='kw']") dr.find_element_by_xpath("//*[@name='wd']" )dr.find_element_by_xpath("//input[@class='s_ipt']") dr.find_element_by_xpath("/html/body/form/span/input") dr.find_element_by_xpath("//span[@class='soutu-btn']/input") dr.find_element_by_xpath("//form[@id='form']/span/input") dr.find_element_by_xpath("//input[@id='kw' and @name='wd']") # 通過 css 定位的幾種寫法 dr.find_element_by_css_selector("#kw") dr.find_element_by_css_selector("[name=wd]") dr.find_element_by_css_selector(".s_ipt") dr.find_element_by_css_selector("html > body > form > span > input") dr.find_element_by_css_selector("span.soutu-btn> input#kw") dr.find_element_by_css_selector("form#form > span > input") # 通過 link_text 定位 dr.find_element_by_link_text("新聞") dr.find_element_by_link_text("hao123") dr.find_element_by_partial_link_text("新") dr.find_element_by_partial_link_text("hao") dr.find_element_by_partial_link_text("123") # 如果是定位一組元素,用下面 find_elements_by_id() find_elements_by_name() find_elements_by_class_name() find_elements_by_tag_name() find_elements_by_link_text() find_elements_by_partial_link_text() find_elements_by_xpath() find_elements_by_css_selector()
請求
顯示頁面
查找元素
點(diǎn)擊可點(diǎn)擊元素
所以如何使用selenium找到頁面中的標(biāo)簽,進(jìn)而觸發(fā)標(biāo)簽事件,就會(huì)變的尤為重要
1. selenium選擇器 要想定位頁面的元素,selenium也提供了一系列的方法。 1) 通過標(biāo)簽id屬性進(jìn)行定位 browser.find_element_by_id('kw') # 其中kw便是頁面中某個(gè)元素的id值 2) 通過標(biāo)簽name屬性進(jìn)行定位 # 兩種方式是一樣的 browser.find_element_by_name("wd") # 其中wd是頁面中某個(gè)元素的name值 3) 通過標(biāo)簽名進(jìn)行定位 browser.find_element_by_tag_name("img") # img參數(shù)表示的就是圖片標(biāo)簽img 4) 通過CSS查找方式進(jìn)行定位 browser.find_elements_by_css_selector("#kw") # 根據(jù)選擇器進(jìn)行定位查找,其中#kw表示的是id選擇器名稱是kw的 5) 通過xpath方式定位 browser.find_element_by_xpath('//*[@id="kw"]') # 參數(shù)即是xpath的語法 6) 通過搜索頁面中鏈接進(jìn)行定位 有時(shí)候不是一個(gè)輸入框也不是一個(gè)按鈕,而是一個(gè)文字鏈接,我們可以通過link browser.find_element_by_link_text("設(shè)置") 通過搜索頁面中鏈接進(jìn)行定位 ,可以支持模糊匹配** browser.find_element_by_partial_link_text("百度") # 查找頁面所有的含有百度的文字鏈接
以上就是“selenium環(huán)境搭建及基本元素定位的方法是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識,如果還想學(xué)習(xí)更多的知識,請關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。