【学习记录】Python-Selenium
准备
软件
chromedriver
: http://chromedriver.storage.googleapis.com/index.html
geckdriver
:https://github.com/mozilla/geckodriver
安装
pip install selenium
chromedriver
复制到Google\Chrome\Application
、Anaconda3\
文件夹下,并且添加系统环境变量
检测安装
from selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://baidu.com')
print(browser.title)
print(browser.page_source)
browser.close()
学习
基础
chrome_options = webdriver.ChromeOptions()
:生成浏览器选项
chrome_options.add_argument('--headless')
:添加浏览器选项属性:无头模式
chrome_options.add_argument('--disable-gpu')
:添加浏览器选项属性:禁用显卡
chrome_options.add_argument('--no-sandbox')
:添加浏览器选项属性:停用沙箱
driver = webdriver.Chrome(options=chrome_options)
:打开浏览器驱动
driver.get('https://baidu.com')
:登陆网页
driver.execute_script('window.scrollTo(0,document.body.scrollHeight)')
:执行JS脚本
driver.save_screenshot('test.png')
:保存浏览器截图
driver.maximize_window()
:最大化浏览器窗口
driver.switch_to_frame('BAIDU_DUP_fp_iframe')
:切换iframe
driver.close()
:关闭当前窗口
driver.quit()
:关闭所有窗口,并且退出驱动
元素
-
元素定位(link_text、class_name、css_selector、id、iframe)
XPath:
driver.find_element_by_xpath('//*[@id="j_p_postlist"]/div[3]/div[2]/div[2]/div[2]/div[2]/ul/li[2]/a')
(输入参数时用单引号)
CSS:
driver.find_element_by_css_selector(".poster_submit")
(class名称前加.)
-
元素操作
点击:
driver.find_element_by_*('***').click()
输入字符:
driver.find_element_by_*('***').send_keys('****')
清除字符:
driver.find_element_by_*('***').clear()
-
headless浏览器调试方法
设置调试端口:
chrome_options.add.argument("--remote-debugging-port=9000")
例子
- 百度搜索
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.baidu.com')
inputElement = driver.find_element_by_id('kw')
searchButton = driver.find_element_by_id('su')
inputElement.send_keys("Selenium")
searchButton.click()