Day02---selenium请求库
一、selenium的基本使用
导包
from selenium import webdriver # 用来驱动浏览器的 from selenium.webdriver import ActionChains # 破解滑动验证码的时候用的 可以拖动图片 from selenium.webdriver.common.by import By # 按照什么方式查找,By.ID,By.CSS_SELECTOR from selenium.webdriver.common.keys import Keys # 键盘按键操作 from selenium.webdriver.support import expected_conditions as EC # 和下面WebDriverWait一起用的 from selenium.webdriver.support.wait import WebDriverWait # 等待页面加载某些元素 import time
打开浏览器的方式:
# 方式一:通过驱动打开浏览器 # driver = webdriver.Chrome(r'F:\python\Scripts\chromedriver.exe') # 方式二:把webdriver.exe驱动放到python解释器安装目录/Scripts文件夹中 # python解释器安装目录/Scripts配置环境变量 # python解释器安装目录 配置环境变量 driver = webdriver.Chrome()
使用try...finally方法处理异常
try: driver.get('http://www.jd.com/') # 获取显示等待对象10秒 # 可以等待某个标签加载10秒 wait = WebDriverWait(driver,10) # 查找元素id为key input_tag = wait.until(EC.presence_of_element_located((By.ID, 'key'))) time.sleep(5) # 输入商品名称 input_tag.send_keys('弟弟') # 按下键盘回车键 input_tag.send_keys(Keys.ENTER) time.sleep(20) finally: # 关闭浏览器释放操作系统资源 driver.close()
二、selenium选择器
导包
from selenium import webdriver from selenium.webdriver.common.keys import Keys import time
打开浏览器:
driver = webdriver.Chrome()
等待方式:
try: # 隐式等待:需要在get之前调用 # 等待任意元素加载10秒 driver.implicitly_wait(10) driver.get('http://www.baidu.com/') # 显示等待:需要在get之后调用 time.sleep(10)
自动登录百度 start:
# 1、find_element_by_link_text # 通过链接文本去找 login_link = driver.find_element_by_link_text('登录') login_link.click() # 点击登录 time.sleep(1) # 2、find_element_by_id # 通过id去找 user_login = driver.find_element_by_id('TANGRAM__PSP_10__footerULoginBtn') user_login.click() time.sleep(1) # 3、find_element_by_class_name user = driver.find_element_by_class_name('pass-text-input-userName') user.send_keys('*****') # 4、find_element_by_name pwd = driver.find_element_by_name('password') pwd.send_keys('*****') submit = driver.find_element_by_id('TANGRAM__PSP_10__submit') submit.click() # end # 5、find_element_by_partial_link_text # 局部链接文本查找 login_link = driver.find_element_by_partial_link_text('登') login_link.click() # 6、find_element_by_css_selector # 根据属性选择器查找元素 # .: class # #: id login2_link = driver.find_element_by_css_selector('.tang-pass-footerBarULogin') login2_link.click() # 7、find_element_by_tag_name div = driver.find_elements_by_tag_name('div') print(div) time.sleep(20) finally: # 关闭浏览器释放操作系统资源 driver.close()
# 结束