使用時要打from selenium import webdriver
#然後選取一個瀏覽器,最常用為chrome (要先下載chrome driver)
driver = webdriver.Chrome("路徑/chromedriver.exe")
#利用driver打開目標網站
driver.get('目標網頁的url')
打開之後可以使用的一些操作
1. driver.page_source 取得網頁原始碼
2. driver.find_element_by_name('利用name尋找要找的標籤')
->若網頁中我們要找的目標 其標籤元素 裡頭有name 即可使用此法
ex.
若目標標籤為<input type='text' name='username'>,可找裡頭的name='username'
driver.find_element_by_name('username')
3. driver.find_element_by_id('利用id尋找要找的標籤') 同name用法
4.driver.find_element_by_class('利用class尋找要找的標籤') 同name用法
5.driver.find_element_by_Xpath('利用Xpath尋找要找的標籤')
->當標籤裡沒有id也沒有name時可利用此法,它會把整個網頁原始碼看成一大文件那樣
然後每個標籤都是它的子文件 標籤中又有更小的子文件 有點像電腦中的檔案路徑那樣
ex.
<html>
<head> ..... </head>
<body>
<div class = 'id'>
<form class = '_form' method='get' action = 'http://.....'>
<input type='text' autocomplete="username">
<input type='password' autocomplete="current-password">
</form>
</div>
</body>
</html>
此時若要選擇 <input type='text' autocomplete="username">這標籤 有以下幾種寫法:
-1. driver.find_element_by_xpath(" //*[@autocomplete='username'] ")
-2. driver.find_element_by_xpath(" //input[@autocomplete='username'] ")
-3. driver.find_element_by_xpath(" //form[@class="_form"]/input[@autocomplete='username'] ")
-4. driver.find_element_by_xpath(
"//div[@class='id']/form[@class='_form']/input[@autocomplete='username']")
最後找到標籤並給予它一個變數My_user
My_user = driver.find_element_by_xpath(" //input[@autocomplete='username'] ")
此之後即可利用My_user對此<input>來進行操作啦~
6.對<input>進行操作
若要對剛取得的input 進行值or字串的輸入 可利用send_keys()
ex.
My_user = driver.find_element_by_xpath(" //input[@autocomplete='username'] ")
My_user.send_keys("你要輸入的東西")
此時程式就會幫你在網頁中的<input>中,輸入你所要輸入的東西了
之後可再利用click() or submit() 讓程式對網頁進行資料傳送....
My_user.submit() ---->強調表單傳送
My_user.click() ----->強調事件觸發
另外也可利用Keys_RETURN來達成資料傳送:
My_user.send_keys(Keys_RETURN) --->代表程式對網頁按下enter鍵,所以會傳送資料
使用前必須先
from selenium.webdriver.common.keys import Keys 匯入Keys模組
而Keys模組中有這些使用法
# 2、鍵盤事件
# send_keys(Keys.BACK_SPACE) 刪除鍵(BackSpace)
# send_keys(Keys.SPACE) 空格鍵(Space)
# send_keys(Keys.TAB) 製表鍵(Tab)
# send_keys(Keys.ESCAPE) 回退鍵(Esc)
# send_keys(Keys.ENTER) 回車鍵(Enter)
# send_keys(Keys.CONTROL,'a') 全選(Ctrl+A)
# send_keys(Keys.CONTROL,'c') 複製(Ctrl+C)
# send_keys(Keys.CONTROL,'x') 剪下(Ctrl+X)
# send_keys(Keys.CONTROL,'v') 貼上(Ctrl+V)
# send_keys(Keys.F1) 鍵盤F1
# ……
# Send_keys(Keys.F5)鍵盤F5
# …
# send_keys(Keys.F12) 鍵盤F12