Python—selenium模塊(瀏覽器自動化工具)


selenium可以用來完成瀏覽器自動化相關的操作,寫一些代碼制定一些基於瀏覽器自動化的相關操作(行為動作),當代碼執行后,瀏覽器就會自動觸發相關的事件

安裝方法:

  •   pip install selenium
  •   下載對應瀏覽器的驅動程序
  •   谷歌瀏覽器驅動下載地址:

https://chromedriver.storage.googleapis.com/index.html

https://npm.taobao.org/

  •   根據瀏覽器版本選擇對應的驅動版本(網上查)

代碼流程:

  • 導入模塊:from selenium import webdriver
  • 實例化一個瀏覽器對象:webdriver.Chrome(executable_path='./chromedriver.exe') ,參數為瀏覽器驅動路徑;
  • 寫上要訪問的網址:bro.get("https://xueqiu.com/")

瀏覽器相關操作:

  執行js實現滾輪向下

  移動到頁面最底部(如果是動態加載的數據及第一次加載完成的地方):

    js = "window.scrollTo(0,document.body.scrollHeight)"

 

  定位標簽,向標簽里寫參數 

tag_input = bro.find_element_by_id('kw')
tag_input.send_keys('人民幣')

截屏

  bro.save_screenshot('1.png')

 

獲取頁面數據

獲取動態加載的數據:bro.page_source 

  基於xpath獲取標簽:a_tag = bro.find_element_by_xpath("xpath表達式")

  點擊事件:a_tag.click()    單擊鼠標左鍵一下

 

 

網頁的前進和后退

bro.back()   后退

bro.forward()   前進

網頁前進后退代碼

 

谷歌無頭瀏覽器

如不想感知到瀏覽器操作,可讓瀏覽器在后台操作 

#谷歌無頭瀏覽器
from selenium import webdriver
from time import sleep
from selenium.webdriver.chrome.options import Options
# 創建一個參數對象,用來控制chrome以無界面模式打開
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')

bro = webdriver.Chrome(executable_path='./chromedriver.exe',options=chrome_options)
bro.get('https://www.baidu.com')
sleep(2)
bro.save_screenshot('1.png')
#標簽定位
tag_input = bro.find_element_by_id('kw')
tag_input.send_keys('人民幣')
sleep(2)

btn = bro.find_element_by_id('su')
btn.click()
sleep(2)

print(bro.page_source)
bro.quit()
谷歌無頭瀏覽器代碼

 

動作鏈

如果定位的標簽存在於iframe標簽之中,則必須經過switch_to操作在進行標簽定位

#動作鏈
from selenium import webdriver
from time import sleep
from selenium.webdriver import ChromeOptions
from selenium.webdriver import ActionChains  

option = ChromeOptions()
option.add_experimental_option('excludeSwitches', ['enable-automation'])

bro = webdriver.Chrome(executable_path='./chromedriver.exe',options=option)
url = 'https://www.runoob.com/try/try.php?filename=jqueryui-api-droppable'
bro.get(url=url)
#如果定位的標簽存在於iframe標簽之中,則必須經過switch_to操作在進行標簽定位
bro.switch_to.frame('iframeResult')
source_tag = bro.find_element_by_id('draggable')
taget_tag = bro.find_element_by_id('droppable')
#創建一個動作連的對象
action = ActionChains(bro)
action.drag_and_drop(source_tag,taget_tag)
action.perform()
sleep(3)
# bro.quit()
動作鏈代碼展示

 

 

 

 

  

 

  

 

 

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM