Selenium
1.selenium的安装
- 操作edge浏览器驱动下载地址(注意要和edge浏览器版本保持一致)
https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
- pycharm下载selenium
pip install selenium
2.selenium的使用步骤
(1) 导入 :from selenium import webdriver
(2) 创建edge浏览器操作对象
# 创建浏览器操作对象
path = 'msedgedriver.exe'
# 尝试传参
s = Service(path)
brower = webdriver.Edge(service=s)
(3) 访问网址
url = 'https://www.jd.com/'
brower.get(url)
# page_source获取网页源码
content = brower.page_source
(4) 元素定位
统一方法:find_element(by = '', value = '')
分类:
1.根据id来找tag对象
button = brower.find_element(by="id",value="su")
2.使用xpath解析获得tag对象
button = brower.find_element(by='xpath',value='//input[@id="su"]')
3.根据链接文本获得tag对象
button = brower.find_element(by='link text',value='视频')
4.根据标签属性的属性值获得tag对象
button = brower.find_element(by='name',value='wd')
5.根据标签的名字(注意返回一个列表)获得tag对象
button = brower.find_elements(by='tag name',value='input')
(5) 元素信息
1.获得元素属性: get_attribute('class')
eg.button = brower.find_element(by="id",value="su")
print(button.get_attribute('class'))
2.获得元素文本: text
eg.button = brower.find_element(by="link text",value="视频")
print(button.text)
3.获得标签名: tag_name
eg.button = brower.find_element(by="id",value="su")
print(button.tag_name)
(6) 交互
1.点击:click()
2.输入:send_keys()
3.后退操作:brower.back()
4.前进操作:brower.forward()
5.模拟JS滚动:
js_buttom = 'document.documentElement.scrollTop=100000'
brower.execute_script(js_buttom) 执行js代码
6.获取网页代码:page_source
7.退出:brower.quit()
案例:实现搜索与翻页自动化
from selenium import webdriver
import time
from selenium.webdriver.edge.service import Service
# 创建浏览器对象
path = 'msedgedriver.exe'
s = Service(path)
brower = webdriver.Edge(service=s)
url = 'https://www.baidu.com'
brower.get(url)
# sleep参数单位是秒
time.sleep(2)
# 获取文本框的对象
input = brower.find_element(by="id", value='kw')
# 在文本框中输入周杰伦
input.send_keys('周杰伦')
time.sleep(2)
# 获取百度一下的按钮
button = brower.find_element(by="id", value="su")
# 点击按钮
button.click()
time.sleep(2)
# 滑到底部
js_buttom = 'document.documentElement.scrollTop=100000'
brower.execute_script(js_buttom)
time.sleep(2)
# 获取下一页的按钮
next = brower.find_element(by='xpath', value='//a[@class="n"]')
# 点击下一页
next.click()
time.sleep(2)
# 回到上一页
brower.back()
time.sleep(2)
# 回去
brower.forward()
time.sleep(3)
# 退出
brower.quit()
3.Edge headless
可以使用 EdgeOptions
配置将在创建会话时传递给 Microsoft Edge 浏览器进程的命令行参数。 例如,可以将浏览器配置为在无外设模式下运行。(在不打开UI界面的情况下使用Edge浏览器)
具体可以在官方文档:https://docs.microsoft.com/zh-cn/microsoft-edge/webdriver-chromium/?tabs=python中查看
from selenium import webdriver
from selenium.webdriver.edge.options import Options
options = Options()
options.add_argument("headless")
driver = webdriver.Edge(options = options)
举例:浏览器截图
# 可以将浏览器配置为在无外设模式下运行。
from selenium import webdriver
from selenium.webdriver.edge.options import Options
def share_brower():
options = Options()
options.add_argument("headless")
brower = webdriver.Edge(options=options)
return brower
brower = share_brower()
url = 'https://www.baidu.com'
brower.get(url)
# 页面截图
brower.save_screenshot('baidu.png')
标签:webdriver,Python,button,selenium,爬虫,value,seleuim,brower,find
From: https://www.cnblogs.com/epochal/p/lucky.html