Python 爬虫 以及 selenium 使用

1.Selenium

Selenium 是一款自动化的浏览器驱动。能够根据代码去进行自动化操作。能够实现跨平台调用等。

1.1 Seleniun 驱动下载

Selenium驱动需要和当前系统所安装的版本保持一致才可以进行,不然在使用的途中会产生报错。首先我们打开Chrome(其他浏览器原理一致)。在设置里面找到关于Chrome,或者直接打开 chrome://settings/help 链接。可以看到当前浏览器的版本。
在这里插入图片描述

确认好版本之后打开:
Chrome驱动下载
找到对应的浏览器版本进行驱动下载

1.2引用添加

下载完成后开始进行代码的编辑,首先在python头部加入Selenium的相关引用

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service

随后实例化Selenium,路径填入下载的驱动存放的路径。如果放在根目录下面可以不填

s = Service(r'D:\SeleniumDriver\chrome\chromedriver.exe')
browser = webdriver.Chrome(service=s)
browser.get("https://www.baidu.com/")

2. 解析Html

众所周知关于Html文本有很多的解析方法,Selenium这里一共提供了八种解析方法

定位元素定位多个元素方式
find_element_by_idfind_elements_by_id通过元素id定位
find_element_by_namefind_elements_by_name通过元素name定位
find_element_by_class_namefind_elements_by_class_name通过classname进行定位
find_element_by_tag_namefind_elements_by_tag_name通过标签定位
find_element_by_link_textfind_elements_by_link_tex通过完整超链接定位
find_element_by_partial_link_textfind_elements_by_partial_link_text通过部分链接定位
find_elements_by_css_selectorfind_elements_by_css_selector通过css选择器进行定位
find_element_by_xpathfind_elements_by_xpath通过xpath表达式定位

通常我习惯用Xpath的解析方式

element = browser.find_element(By.XPATH, "//div[@id='map_canvas']//button[@class='ol-zoom-out']")

2.1 网页操作

方法说明
set_window_size()设置浏览器的大小
back()控制浏览器后退
forward()控制浏览器前进
refresh()刷新当前页面
clear()清除文本
send_keys (value)模拟按键输入
click()单击元素
submit()用于提交表单
get_attribute(name)获取元素属性值
is_displayed()设置该元素是否用户可见
size返回元素的尺寸
text获取元素的文本

示例

设置网页最大化
browser.set_window_size(max)
刷新
browser.refresh()

模拟鼠标事件

方法说明
ActionChains(driver)构造ActionChains对象
context_click()执行鼠标悬停操作
move_to_element(above)右击
double_click()双击
drag_and_drop()拖动
move_to_element(above)执行鼠标悬停操作
context_click()用于模拟鼠标右键操作, 在调用时需要指定元素定位
perform()执行所有 ActionChains 中存储的行为,可以理解成是对整个操作的提交动作

模拟键盘

方法说明
send_keys(Keys.BACK_SPACE)删除键(BackSpace)
send_keys(Keys.SPACE)空格键(Space)
send_keys(Keys.TAB)制表键(Tab)
send_keys(Keys.ESCAPE)回退键(Esc)
send_keys(Keys.ENTER)回车键(Enter)
send_keys(Keys.CONTROL,‘a’)全选(Ctrl+A)
send_keys(Keys.CONTROL,‘c’)复制(Ctrl+C)
send_keys(Keys.CONTROL,‘x’)剪切(Ctrl+X)
send_keys(Keys.CONTROL,‘v’)粘贴(Ctrl+V)
send_keys(Keys.F1…Fn)键盘 F1…Fn

示例

element1 = browser.find_element(By.XPATH, "//button[@id='expand_sidebar_button']")
element1.click()
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

新标签页

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

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

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

打赏作者

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

抵扣说明:

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

余额充值