Reptile_05 selenium

selenium可以控制浏览器,做出自动打开、输入、点击等操作
使用selenium需要安装

pip install selenium # Windows电脑安装selenium
pip3 install selenium # Mac电脑安装selenium

一、浏览器驱动配置

selenium的脚本可以控制所有常见浏览器的操作,在使用之前,需要安装浏览器的驱动,推荐使用Chrome浏览器

点击下载Chrome驱动

将下载的chromedriver文件,放至python主目录下
在这里插入图片描述
配置环境变量
在这里插入图片描述
设置浏览器引擎 并运行检查配置结果:

from selenium import webdriver #从selenium库中调用webdriver模块
import time

driver = webdriver.Chrome() # 设置引擎为Chrome,真实地打开一个Chrome浏览器

driver.get('URL')
time.sleep(5)

driver.close()  #关闭浏览器驱动

运行后,能自动打开谷歌浏览器,表示配置正常

二、解析与提取数据

selenium库具备解析数据、提取数据的能力,selenium解析提取的,是Elements中的所有数据

用selenium把网页打开,所有信息就都加载到了Elements那里,之后,就可以把动态网页用静态网页的方法爬取

selenium常用提取方法(提取多个,将element改为elements

find_element_by_tag_name:通过元素的名称选择
# 如<h1>李白-静夜思</h1> 
# 可以使用find_element_by_tag_name('h1')

find_element_by_class_name:通过元素的class属性选择
# 如<h1 class="title">李白-静夜思</h1>
# 可以使用find_element_by_class_name('title')

find_element_by_id:通过元素的id选择
# 如<h1 id="title">李白-静夜思</h1> 
# 可以使用find_element_by_id('title')

find_element_by_name:通过元素的name属性选择
# 如<h1 name="hello">李白-静夜思</h1> 
# 可以使用find_element_by_name('hello')


#以下两个方法可以提取出超链接

find_element_by_link_text:通过链接文本获取超链接
# 如<a href="spidermen.html">李白-静夜思</a>
# 可以使用find_element_by_link_text('李白-静夜思')

find_element_by_partial_link_text:通过链接的部分文本获取超链接
# 如<a href="https://baike.baidu.com/item/%E9%9D%99%E5%A4%9C%E6%80%9D/214">李白-静夜思</a>
# 可以使用find_element_by_partial_link_text('李白')

提取元素中的文本和属性名
h1 = driver.find_element_by_tag_name(‘h1’)

print(h1.text)

通过属性名提取属性的值

.get_attribute()
在这里插入图片描述

label = driver.find_element_by_class_name('x-treelist-item-text') # 根据类名找到元素

print(label.get_attribute('id')) # 获取type这个属性的值

打印结果:
用户管理

三、selenium获取,BeautifulSoup解析和提取

BeautifulSoup需要把字符串格式的网页源代码解析为BeautifulSoup对象,然后再从中提取数据,selenium可以获取到渲染完整的网页源代码

使用driver的一个方法:page_source

HTML源代码字符串 = driver.page_source

然后可使用html方式来获取数据,可参考:
Html网页爬虫(BeautifulSoup模块)

四、自动操作浏览器

爬虫中常用功能有,信息输入,点击确认按钮

.send_keys() # 模拟键盘输入
.click()     # 点击元素
.clear()     # 清除元素的内容

简单用户登录案例
在这里插入图片描述

label = driver.find_element_by_id('userId').send_keys('admin') # 输入用户名
label = driver.find_element_by_id('password').send_keys('123456') # 输入密码
label = driver.find_element_by_id('loginBtn').click() #点击登录
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

法海爱捉虫

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

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

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

打赏作者

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

抵扣说明:

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

余额充值