1作用:模拟浏览器功能,自动执行网页中的js代码,实现动态加载
2.实现
from selenium import webdriver
#创建浏览器操作对象
path=‘chromedriver.exe’
browser=webdriver.Chrome(path)
#访问网站
url=‘http://www.baidu.com’
browser.get(url)
page_source获取网页源码
3.selenium元素定位
自动化要做的是模拟鼠标和键盘来操作这些元素,点击输入等,操作这些元素首先要找到它们,webDriver提供很多定位元素
button=browser.find_element_by_id(‘su’)
button=browser.find_element_by_name(‘wd’)
button=browser.find_element_by_xpath(‘//input[@id=“su”]’)
button=browser.find_element_by_css_seletor(‘#su’)
.get_attribute(‘class’)获取元素属性
.text获取元文本
.tag_name获取标签名
交互:
click()点击
send_keys()输入
browser.back()后退操作
browser.forword()前进操作
模拟js滚动(自己滑到底部scrollTop=100000)
js=‘document.body.scrollTop=100000’
js=‘document.documentElement.scrollTop=100000’
browser.execute_script(js)执行js代码
time.sleep(2)
睡眠两秒
4.Chrome handles无界面浏览器,后台运行前面不展示,运行效率要快一些
因为看不见过程,所以让他给我拍个照
browser.save_screenshot(‘baidu.png’)
Chrome headless官方插件,让你在不需要打开界面的情况下使用浏览器