网络爬虫学习笔记---Selenium库


selenium库是什么?

Selenium是一个用于Web应用程序测试的自动化测试工具。可以模拟用户在Web浏览器中与Web应用程序进行交互的行为,如点击、输入、选择、滚动等,还可以对测试结果进行验证和报告。


一、selenium库的安装

使用如下代码,在cmd中进行安装库:

pip install selenium

如果下载速度缓慢,参照网络爬虫学习笔记—requests库中的python库安装加速方案

二、相关语法

1.元素定位

# 通过id进行定位
find_element(By.ID,"kw")
# 通过name进行定位
find_element(By.NAME,"wd")
# 通过类名进行定位
find_element(By.CLASS_NAME,"s_ipt")
# 通过标签名进行定位
find_element(By.TAG_NAME,"input")
# 通过完整超链接文字进行定位
find_element(By.LINK_TEXT,u" 新闻 ")
# 通过超链接文字进行定位(可以不完整)
find_element(By.PARTIAL_LINK_TEXT,u" 新 ")
# 通过xpath进行定位
find_element(By.XPATH,"//*[@class='bg s_btn']")
# 通过css定位
find_element(By.CSS_SELECTOR,"span.bg s_btn_wr>input#su") 

2.基本操作

# 设置最大等待时间,参数为秒数
implicitly_wait(60)    
 
 # 刷新当前窗口
refresh() 
# 网页前进    
forward()  
# 网页后退  
back()   
 
# 最大化当前驱动窗口
maximize_window() 
# 最小化当前驱动窗口    
minimize_window()  
# 网页全屏,调用窗口管理器特定的“全屏”操作   
fullscreen_window()  

# 通过name获得一个cookie
get_cookie('name的名称')    
# 返回对应于当前会话可见的所有cookies,返回类型为字典 
get_cookies()     
 
# 自定义开启会话,创建新session前调用
start_client() 
# 自定义结束会话,结束一个session后调用   
stop_client()  

3.自动截屏

# 当前页面截屏保存为png图片,可指定路径,bool
get_screenshot_as_file('filename') 
# 将当前页保存为base64的格式  
get_screenshot_as_base64() 
# 将截图保存在本地
save_screenshot(filename)
# 当前页面截屏保存为png格式,数据形式为binary data
get_screenshot_as_png()  

4.窗口操作

(1)获取信息

# 当前窗口x,y坐标和长度、宽度
get_window_rect()  
# 当前窗口x、y坐标   
get_window_position() 
# 当前窗口长度、宽度    
get_window_size()     
 
# 设置窗口坐标位置和窗口大小
set_window_rect('x坐标', 'y坐标', '宽度', '高度')
# 设置窗口x,y坐标
set_window_position('x坐标', 'y坐标', windowHandle='current')
# 设置窗口的宽度,高度
set_window_size('宽度', '高度', windowHandle='current')

(2)操作窗口

# 工作窗口、frame等切换:swith_to
switch_to.default_content()    # 切换到默认页
switch_to.frame('frame_name')    # 切换到指定frame
switch_to.parent_frame()    # 切换到父frame
switch_to.window('main')    # 切换到主窗口
 
# 保存操作,需要赋予变量存储
source = d.page_source      # 保存当前页面的源
title = d.title     # 保存当前页面title
handlers = d.current_window_handle      # 保存所有窗口句柄
handler = d.current_window_handle       # 保存当前窗口句柄
outs = d.timeouts   # 保存当前页面所有超时
 
# swith_to 和保存操作结合
element = d.switch_to.active_element
alert = d.switch_to.alert

5.键鼠模拟

click(on_element=None)#单击鼠标左键
click_and_hold(on_element=None)#点击鼠标左键,不松开
context_click(on_element=None)#点击鼠标右键
double_click(on_element=None)#双击鼠标左键
drag_and_drop(source, target)#拖拽到某个元素然后松开
drag_and_drop_by_offset(source, xoffset, yoffset)#拖拽到某个坐标然后松开
key_down(value, element=None)#按下某个键盘上的键
key_up(value, element=None)#松开某个键
move_by_offset(xoffset, yoffset)#鼠标从当前位置移动到某个坐标
move_to_element(to_element)#鼠标移动到某个元素
move_to_element_with_offset(to_element, xoffset, yoffset)#移动到距某个元素(左上角坐标)多少距离的位置
perform()#执行链中的所有动作
release(on_element=None)#在某个元素位置松开鼠标左键
send_keys(*keys_to_send)#发送某个键到当前焦点的元素
send_keys_to_element(element, *keys_to_send)#发送某个键到指定元素 

三、使用步骤

1.引入库

代码如下(示例):

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys

2、加载驱动

下载对应浏览器的驱动程序(以edge为例):
打开浏览器驱动下载页面,找到同时对应浏览器版本和电脑系统版本的驱动程序。

代码如下(示例):

driver = webdriver.Edge(service=Service(driver_path), options=edge_options)

3、访问网页

driver.get('http://spiderbuf.cn/e03/')

4、对网页进行操作

table = driver.find_element(By.CLASS_NAME,"table")
print(table.text)
# 返回网页中类名为table的标签的文本内容
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吴倾枫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值