selenium初使用

本文详细介绍了Selenium的安装与配置,包括如何创建Chrome实例、设置选项、打开和关闭浏览器,以及如何操作网页元素如输入、点击和获取属性。通过实例展示了如何利用Selenium进行网页爬取并解析页面内容。此外,还讲解了如何切换窗口等高级功能,适合初学者学习网页自动化和爬虫。
摘要由CSDN通过智能技术生成

selenium

它是一款网页浏览器的模拟器,通常用来做网页测试,也可以用来做爬虫

安装selenium

conda install selenium
pip install selenium

同时安装谷歌浏览器和其驱动器,该步可以网上查攻略,不细讲了。

打开

# 1、创建Chrome实例 。
option = webdriver.ChromeOptions()
option.binary_location = r'谷歌浏览器打开路径'# 
driver = webdriver.Chrome(options=option)

在这里插入图片描述

关闭浏览器

driver.close()

基本设置

# 1、创建Chrome实例 。
option = webdriver.ChromeOptions()
option.binary_location = r'C:.....\Chromium.exe'  # binary_location属性指定Chrome启动文件
option.add_argument('--headless')		# add_argument属性指定浏览器开启隐式
option.add_argument('--disable-gpu')
option.add_experimental_option('excludeSwitches',['enable-automation'])  # 防止被网站识别
driver = webdriver.Chrome(options=option)

打开某个网址并且输出源代码

driver.get("https://blog.csdn.net/weixin_43788986?spm=1000.2115.3001.5343")
print(driver.page_source)

寻找节点

是xpath方法

from selenium import webdriver
from selenium.webdriver.common.by import By

node = driver.find_element(By.XPATH,"") # 寻找单节点
nodes = driver.find_elements(By.XPATH,"") # 寻找多节点

输入和清空输入框

以百度为例,先在浏览器打开百度,然后检查:
在这里插入图片描述
可以获取的xpath路径,然后写代码:

driver.get("https://www.baidu.com/")
inp = driver.find_element(By.XPATH, '/html/body/div[1]/div[1]/div[5]/div/div/form/span[1]/input')
inp.send_keys('爬虫学习')
#inp.clear()  # 清空搜索框的文字

在这里插入图片描述

点击按钮

还是在上个基础上写,同样检查获取百度一下按钮的xpath

driver.get("https://www.baidu.com/")
inp = driver.find_element(By.XPATH, '/html/body/div[1]/div[1]/div[5]/div/div/form/span[1]/input')
inp.send_keys('爬虫学习')

but = driver.find_element(By.XPATH,'//*[@id="su"]')
# but.click() # 不推荐
driver.execute_script("arguments[0].click();", but)

在这里插入图片描述

获取子属性,文本

例如:
在这里插入图片描述
获取h3中的属性class:

driver.get("https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=%E7%88%AC%E8%99%AB%E5"
           "%AD%A6%E4%B9%A0&fenlei=256&rsv_pq=9717f30200013d1d&rsv_t=8e86C%2BBcvQ12Kl8Ujl9%2FZU6meZGDQ"
           "97c7%2FZtsZ1HsJ2nfDVc1EEvjcl6MH8&rqlang=cn&rsv_enter=1&rsv_dl=tb&rsv_sug3=4&rsv_sug1=1&rsv_"
           "sug7=100&rsv_btype=i&inputT=174&rsv_sug4=174&rsv_jmp=fail")
h3 = driver.find_element(By.XPATH, '//*[@id="3"]/div/div[1]/h3')
print(h3.get_attribute('class'))
print(h3.text)

在这里插入图片描述

切换到新窗口

#保存窗口1
window_1 = driver.current_window_handle

#去新窗口
handles = driver.window_handles
print(handles)
for handle in handles:
    if handle!=window_1:
        print('Go to new window:',handle)
        driver.switch_to.window(handle)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

<编程路上>

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

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

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

打赏作者

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

抵扣说明:

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

余额充值