首页 > temp > python入门教程 >
-
selenium 自动化工具
安装:
pip install selenium
Chrome浏览器驱动的安装
http://npm.taobao.org/mirrors/chromedriver/
下载对应版本的浏览器驱动
解压后得到驱动的可执行文件
将其拷贝到任意环境变量目录
$ echo $PATH 查看环境变量路径
库的导入 from selenium import webdriver
创建浏览器对象 driver = webdriver.Chrome()
使用dir(driver)查看方法
加载网页: driver.get("http://www.baidu.com/")
简单操作:
driver.maximize_window() 最大化
driver.close() 关闭当前标签/窗口
driver.quit() 关闭所有标签/窗口
driver.save_screenshot("baidu.png") 保存页面快照
定位和操作:
driver.find_element_by_xpath(“//...../...”)
driver.find_element_by_id(“usename”)
查看请求信息:
driver.page_source 获取源码
driver.get_cookies() 获取浏览器中存储的cookies
driver.current_url 查看当前url
driver.title 查看当前标签的标题
从定位到的元素中提取数据的方法
el.get_attribute(key) 获取key属性名对应的属性值
el.text 获取开闭标签之间的文本内容
对定位到的元素的操作
el.click() 对元素执行点击操作
el.submit() 对元素执行提交操作
el.clear() 清空可输入元素中的数据
el.send_keys(data) 向可输入元素输入数据
自动登录抢商品(票等) 举例:
京东秒杀 练习
import time from selenium import webdriver driver = webdriver.Chrome() driver.get("https://miaosha.jd.com/") driver.implicitly_wait(5) #验证是否登录 try: user = driver.find_element_by_xpath('//*[@id="ttbar-login"]/div[1]/a') except: driver.find_element_by_xpath('//*[@id="ttbar-login"]/a[1]').click() handles_list = driver.window_handles driver.switch_to.window(handles_list[-1]) t = 0 while True: try: user = driver.find_element_by_xpath('//*[@id="ttbar-login"]/div[1]/a') except: #等待扫玛登录 t+=1 print(t) continue #账号登陆 # driver.find_element_by_xpath('//*[@id="content"]/div[2]/div[1]/div/div[3]/a').click() # time.sleep(5) # driver.find_element_by_id("loginname").send_keys('12345678910') # driver.find_element_by_id("nloginpwd").send_keys('12345678910') # time.sleep(5) # driver.find_element_by_id("loginsubmit").click() break print('--------------------------------------') n = 0 while True: now_time = driver.find_element_by_xpath('//*[@id="timeline"]/div/ul/li[1]/a/div/div[1]/i').text if now_time == '18:00': nead_good = driver.find_element_by_xpath('//*[@id="super_seckill"]/div/ul/li[1]/div/a') if nead_good.text == '立即抢购': nead_good.click() handles_list = driver.window_handles driver.switch_to.window(handles_list[-1]) driver.find_element_by_id("InitCartUrl").click() driver.implicitly_wait(5) driver.quit() break time.sleep(5) n += 1 print(n)