类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所示,成功实现单击网页中的“图书”。