打开网站
导入: from selenium import webdriver
获取浏览器对象: webdriver.Chrome()
打开某个网站:ob.get("url")
为了防止网站打开之后闪退,可以添加input()语句防止其立刻结束
from selenium import webdriver
if __name__ == '__main__':
driver = webdriver.Chrome() # 获取浏览器对象
driver.get("https://hao.360.com/?src=lm&ls=n45b567d89e")
input() # 防止立刻结束
选择元素
from selenium import webdriver
from selenium.webdriver.common.by import By
主要有以下四种方法:
根据id选择元素
根据元素属性选择元素
根据元素的标签名选择元素
根据WebElement选择对象
根据id选择元素
ob.find_element(By.ID, "id名称"), 该方法找不到会抛出异常
ob.find_elements(By.ID, "id名称"), 该方法返回一个列表,存放各个元素,找不到返回[]
根据元素属性选择元素
ob.find_element(By.CLASS_NAME, "属性名称"), 该方法找不到会抛出异常
ob.find_elements(By.CLASS_NAME, "属性名称"), 该方法返回一个列表,存放各个元素,找不到返回[]
根据元素的标签名选择元素
ob.find_element(By.TAG_NAME, "标签名称"), 该方法找不到会抛出异常
ob.find_elements(By.TAG_NAME, "标签名称"), 该方法返回一个列表,存放各个元素,找不到返回[]
根据WebElement选择对象
find_element方法返回一个WebElement对象,该对象同样可以调用find_element或find_elements方法,通过上述三种方式定位其内部元素。
代码:
from selenium import webdriver
from selenium.webdriver.common.by import By
"""打开网页"""
# 创建 WebDriver 对象
wd = webdriver.Chrome()
# 调用WebDriver 对象的get方法 可以让浏览器打开指定网址
wd.get('https://www.byhy.net/_files/stock1.html')
"""选择元素"""
# 根据id选择元素,返回的就是该元素对应的WebElement对象
try:
element = wd.find_element(By.ID, "kw") # 找第一个元素id为kw的, 若找不到,则抛出异常
except Exception:
print("没有该id")
element.send_keys("通讯") # \n代表进行搜索
element = wd.find_element(By.ID, "go")
element.click() # 点击操作
# 根据元素的属性选择元素
wd.get("https://cdn2.byhy.net/files/selenium/sample1.html")
elements = wd.find_elements(By.CLASS_NAME, "anaaaimals") # 找到所有满足条件的元素,放入列表
if len(elements) == 0: # 没有找到会返回空列表
print("没有该类")
else:
for e in elements:
print(e.text) # 显示元素的文本内容
"""
find_element 与 find_elements区别:后者找所有,前者找第一个
如果没有,elements返回空列表,element抛出异常
"""
# 根据元素的标签名选择元素
elements = wd.find_elements(By.TAG_NAME, "span")
for e in elements: # 每个e是webelement对象
print(e.text)
# 根据WebElement选择对象,找的范围是某个元素的内部, WebDriver找的范围是整个页面
element = wd.find_element(By.ID, "container") # 寻找对象
spans = element.find_elements(By.TAG_NAME, "span")
for span in spans:
print(span.text)
input()
程序运行结果: