selenium的基本使用和常用语法
1.声明浏览器对象
selenium支持多个浏览器,也支持手机端的浏览器,除此之外还有Phantomjs,下面举一个简单的例子,创建一个谷歌浏览器对象,依次类推可以得到其他浏览器对象
from selenium import webdriver
browser = webdriver.Chrome()
2.请求页面
#使用get方法请求百度网页
browser.get('https://www.baidu.com')
#page_source属性用于获取网页的源代码,然后就可以使用正则表达式,css,xpath,bs4来解析网页
print(browser.page_source)
browser.close()
3.查找单个节点和多个节点
寻找单个节点的多有方法,返回的结果是WebElement类型的
browser.find_element_by_id()
browser.find_element_by_name()
browser.find_element_by_xpath()
browser.find_element_by_tag_name()
browser.find_element_by_link_text()
browser.find_element_by_class_name()
browser.find_element_by_css_selector()
browser.find_element_by_partial_link_text()
如果是找多个节点,在element后面加s,结果是列表类型
当我们要定位到百度的搜索框时,我们可以看到,检查元素中,input这个节点里有class,id 等等属性,我们通过定位相关属性,就能定位到想要的节点
from selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://www.baidu.com')
input = browser.find_element_by_id('kw')
browser.close()
4模拟浏览器进行操作
在打开浏览器之后,我们往往需要在一些搜索框里输入文字,删除文字,点击一些按钮等等,这时我们需要用到一下几种方法
send_keys():输入文字
clear():清除文字
click():点击按钮
举个例子,我们打开百度浏览器,然后输入一些关键字,删除,再次输入一些关键字,然后点击回车然后搜索
import time
from selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://www.baidu.com')
input = browser.find_element_by_id('kw')
input.send_keys('周杰伦')
time.sleep(3)
input.clear