Selenium(WEB自动化工具)爬虫的语法

2023-03-06 20:03:00
pjd
原创 360

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()