Python爬虫学习-seleuim交互

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

posted @   epochal  阅读(112)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
点击右上角即可分享
微信分享提示