selenium是一個(gè)Web自動(dòng)化測(cè)試工具,可以直接運(yùn)行在瀏覽器上·支持所有主流的瀏覽器.可以根據(jù)我們的指令,讓瀏覽器自動(dòng)加載頁面,獲取需要的數(shù)據(jù),基礎(chǔ)頁面截圖等。
使用pip install selenium命令下載selenium模塊。
運(yùn)行下列代碼:
from selenium import webdriver
driver = webdriver.Chrome()
說明沒有下載對(duì)應(yīng)瀏覽器的驅(qū)動(dòng),這里使用谷歌瀏覽器
注意:
需要根據(jù)瀏覽器版本下載對(duì)應(yīng)插件。
插件下載地址
如果沒有對(duì)應(yīng)版本,直接選擇最近版本的插件下載即可,這里選擇.52版本即可
下載對(duì)應(yīng)平臺(tái)即可。
下載好后,解壓,把可執(zhí)行程序放到項(xiàng)目同級(jí)目錄下,或者可以在函數(shù)webdriver.Chrome()上傳遞這個(gè)插件路徑driver = webdriver.Chrome(executable_path=r"F:\chrome\chromedriver.exe")
(可能會(huì)因方法棄用爆紅字,忽略即可)
重新運(yùn)行代碼可以發(fā)現(xiàn)不報(bào)錯(cuò)了。
1. selenium練習(xí)
selenium有很多種定位方式,如下表
自動(dòng)搜索
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
# 通過xpath找百度網(wǎng)頁搜索框
search = driver.find_element(By.XPATH, '//*[@id="kw"]')
search.send_keys('筆記本')
time.sleep(5)
# 通過id找搜索按鈕
submit = driver.find_element(By.ID, 'su')
submit.click()
time.sleep(5)
driver.close()
網(wǎng)頁下拉框選擇測(cè)試
網(wǎng)頁下拉框:
通過導(dǎo)入from selenium.webdriver.support.ui import Select
來實(shí)現(xiàn)下拉框的選擇
從selenium.webdriver.Support.ui導(dǎo)入選擇
Select().select_by_index()索引獲取
Select().select_by_value() value獲取
Select().deselect_by_visible_text()文本獲取
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
driver = webdriver.Chrome()
driver.get("https://kyfw.12306.cn/otn/regist/init")
index = driver.find_element(By.ID, 'cardType')
select = Select(index)
# 通過下標(biāo)選擇,列表是從0號(hào)下標(biāo)開始
select.select_by_index(3)
time.sleep(5)
driver.close()
動(dòng)態(tài)頁面翻頁
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get('https://www.duitang.com/search/?kw=%E7%BE%8E%E5%A5%B3&type=feed')
for i in range(1, 200, 5): # 實(shí)現(xiàn)網(wǎng)頁下拉
js = 'window.scrollTo(0,%s)' % (i * 100)
driver.execute_script(js)
time.sleep(0.3)
print(driver.page_source)
input()
# 關(guān)閉頁面
driver.close()
通過selenium可以直接獲取到數(shù)據(jù)。
2. selenium行為鏈
為了更好的讓selenium模擬人的行為,所以引出了 selenium行為鏈
這里以搜索行為鏈為例學(xué)習(xí):from selenium.webdriver.common. action_chains import ActionChains
導(dǎo)入selenium行為鏈模塊
基本操作為:文章來源:http://www.zghlxwxcb.cn/news/detail-790321.html
action = ActionChains(driver) # 在driver創(chuàng)建行為鏈對(duì)象
inp = driver.find_element(By.ID, 'kw') # 獲取到輸入框位置
action.move_to_element(inp) # 把鼠標(biāo)移動(dòng)到輸入框
action.send_keys_to_element(inp, '百度貼吧') # 模擬輸入,函數(shù)中自動(dòng)包括點(diǎn)擊搜索框行為
btn = driver.find_element(By.ID, 'su') # 獲取搜索按鈕
action.move_to_element(btn) # 移動(dòng)鼠標(biāo)到搜索按鈕
action.click(btn) # 模擬點(diǎn)擊
action.perform() # 執(zhí)行行為
from selenium.webdriver.common.action_chains import ActionChains
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
# 通過xpath找百度網(wǎng)頁搜索框
search = driver.find_element(By.XPATH, '//*[@id="kw"]')
# 通過id找搜索按鈕
submit = driver.find_element(By.ID, 'su')
action = ActionChains(driver)
action.move_to_element(search)
action.send_keys_to_element(search, 'python')
action.move_to_element(submit)
action.click(submit)
action.perform()
input()
driver.close()
文章來源地址http://www.zghlxwxcb.cn/news/detail-790321.html
到了這里,關(guān)于Python-爬蟲、自動(dòng)化(selenium,動(dòng)態(tài)網(wǎng)頁翻頁,模擬搜索,下拉列表選擇、selenium行為鏈)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!