Selenium(WEB自动化工具)爬虫的语法
- 2023-03-06 20:03:00
- pjd
- 原创 457
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()