Selenium(WEB自动化工具)爬虫的语法
- 2023-03-06 20:03:00
- pjd
- 原创 880
1,下载Webdriver和对应的chrome浏览器,安装chrome浏览器,将webdriver的安装包地址设置到环境变量中。
2,下载并安装anaconda,在python环境中安装selenium。一般anaconda默认自带了selenium。
3,在编译器创建项目,设置解释器为上述配置好的环境,书写代码进行爬取。
需要引入的头文件
#引入Chrome from selenium.webdriver import Chrome #引入获取元素方式 from selenium.webdriver.common.by import By #引入页面加载等待对象 from selenium.webdriver.support.ui import WebdriverWait
访问URL和导航:
#访问一个网页
driver.get(url)
#获取当前URL
driver.current_url
#返回上一页
driver.back()
#前往下一页
driver.forward()
#刷新页面
driver.refresh()
#获取标题
driver.title
#最大化窗口
driver.maximize_window()
#全屏窗口
driver.fullscreen_window()
#屏幕截图
driver.save_screenshot('./image.png')
#元素截图
element.screenshot('./image.png')
#关闭driver
driver.close()
定位和查找页面元素
定位元素的方式有:class name, css selector, id, name, link text, partial link text, tag name, xpath
#定位单个元素
driver.find_element(By.NAME,'q')
#定位多个元素
driver.find_elements(By.TAG_NAME,'p')
#获取元素的子元素
search_form.find_element(By.NAME,'q')
#获取元素的多个子元素
element.find_elements(By.TAG_NAME,'p')
#获取标签名
driver.find_element(By.CSS_SELECTOR,'h1').tag_name
#获取文本
driver.find_element(By.CSS_SELECTOR.'h1').text
#获取属性
active_element.get_attribute('title')
等待页面回载完毕/元素加载完毕
#含义:有时候Python代码执行很快,页面还没有加载完毕就去取数据,可能会报错
#可以等待条件满足,再去取数据
WebDriverWait(driver,timeout=3).util(condition)
from selenium.webdriver.support.ui import WebDriverWait
WebDriverWait(driver,10).util(lambda d : d.find_element_by_tag_name('p'))
执行键盘操作
#发送内容,然后回车
driver.find_element(By.NAME,'q').send_keys('webdriver', + Keys.ENTER)
#输入内容
SearchInput = driver.get_element(By.Name,'q')
#发送
SearchInput.send_keys('selenium')
#然后清理
SearchInput.clear()