類Keys的定義:
Elass Keys (object):
程軒開Set of special keys codes.#n#
第 15 章 網絡爬蟲
合情些準出照地限公軹
esms0 pro
瘀 Δ器代芻奄燉慧
圖 15-39
工件肉業魚光得
國有上子
理人場營,有司;可有B
相關圍書
圖 15-40
頁源代碼
ython".?
名可能不鞋
NULL = *\ue000'
CANCEL=\ue001'#^控制鍵
HELP =ue002
BACKSPACE =\ue003'BACK SPACE = BACKSPACE
TAB =\ue004'
CLEAR =\ue005'
RETURN =\ue006'ENTER = '\ue007'
SHIFT =\ue008LEFT SHIFT = SHIFTCONTROL =\ue009'LEFT CONTROL=CONTROLA簾芊淄嘶猶常掇妊 =\ue00a'LEFT ALT = ALTPAUSE =\ue00b'ESCAPE =\ue00cSPACE =\ue00d'PAGE UP=ue00e'PAGE DOWN=\ue00f'END =\ue010'HOME =\ue011'LEFT =\ue012'ARROW LEFT = LEFTUp ='\ue013'ARROW UP =UPRIGHT ='\ue014'ARROW RIGHT =RIGHTDOMN =\1e015’
INSERT =
DELETE = '\ue017
SEMICOLON =\ue018'
EQUALS =\ue019'
#數字鍵NUMPAD0 =\ue0la'
NUMPAD1 =\ue01b'
NUMPAD2=\ue0lc
NUMPAD3=\ue0ld'
NUMPAD4='\ue0le'
NUMPAD5r\ue0lf
NUMPAD6'\ue020'三
NUMPAD7 =\ue021'
NUMPAD8=\ue022
NUMPAD9 =ue023'
MULTIPLY =\ue024
ADD=ue025'
SEPARATOR =ue026
SUBTRACT =\ue027'
DECIMAL =\ue028'
DIVIDE =ue029
F1=\ue031'#功能鍵
F2 =ue032'
F3 =\ue033'
F4=\ue034'
F5 =\ue035'
F6 =\ue036'
F7 =ue037'
F8=\ue038'
F9=ue039'
F10 =\ue03a'
F11 =\ue03b'
F12 =ue03c'
META =\ue03d'
COMMAND=\ue03d'
?小項目案例:實現上傳圖片
項目描述
在百度識圖官網中只需要上傳一張照片即可實現自動識別圖片中的內容,如圖15-41所示
項目任務家現在百度識圖官網中上傳一張圖片
項目實現代碼
'''上傳圖片'''
from selenium import webdriver
from selenium.webdriver.edge.options import Options
chrome_options = Options()
chrome_options.binary_location = r"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"
driver = webdriver.Edge(options=chrome_options)
driver.get('https://graph.baidu.com/pcpage/index?tpl_from=pc')
input_element = driver.find_element_by_name('file')
input_element.send_keys(r"C:\Users\hbs\Desktop\C:\Users\hbs\Desktop\微信圖片_20250718150158.jpg")
a = input()
第7行代碼使用find_element_by_name()方法找到標簽名為file的元素第8行代碼直接使用send_keys()方法食:否度們國掩發達壤將圖片路徑以字符串的形式寫入標簽名為nbaidcos?gn1224rome 正愛聯自動新過軟件的修制6le的元素中,至此即可實現上傳圖片。
Bai@tnm臨拽酒片到業外成飛默圖片局日
執行代碼后將自動打開百度識圖官網并將“E:\書代碼\識圖.jpg”圖片上傳到網頁相關位置進行識別,結果如圖15-42所示。
更多操作
在selenium庫中還有很多的用于操作瀏覽器的方法,本小節將介紹其中的一些常用方法。
模擬單擊
獲取網頁元素后可以使用click()方法實現單擊該元素,即模擬單擊網頁中的某個元素所在的位置。為了更方便且快速地自動進入需要訪問的網頁,接下來將使用代碼來實現單擊人民郵電出版社官網中的圖書頁,即單擊圖15-43所示的標注框處的“圖書”
示例代碼(單擊人民郵電出版社官網中的“圖書”):
'''模擬點擊click方法'''
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.binary_location = r"C:\Program Files\Google\Chrome\Application\chrome.exe"
driver = webdriver.Chrome(options=chrome_options)
driver.get('https://www.ptpress.com.cn/periodical')
elments = driver.find_elements_by_class_name("item")
i = 0
for elment in elments:print(i,'個',elment.text)i += 1
elments[3].click()
可知,安華擊的位置處存在多個元素名稱及c1ass名稱相同的元素,因此在用ind-elements_byA第8~11行代碼使用for循環分別遍歷輸出每個元素的內容,以便于找到需要的標簽索引號。name()前要先獲取class名稱為item的所有元素。第12行代碼確定了“圖書”在elments列表中的索引號為3,并執行click()方法實現單擊。執行代碼后的效果如圖15-44所示,成功實現單擊網頁中的“圖書”。