selenium定位元素及爬虫用途简介

本文介绍了selenium的用途,通过模仿浏览器行为来访问和操控网页。详细讲解了8种定位网页元素的方法,如按标签名、ID、name、XPath等,并提到了如何使用这些方法进行元素操作。同时,文中还提及了在爬虫场景下如何获取网页数据,如通过get_attribute()获取属性值,以及爬虫常用的其他方法和属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于安装和配置的部份,请看:https://editor.youkuaiyun.com/md/?articleId=111301269

使用selenium的目的,是模仿浏览器来访问和操控网页。
所以,我们要先打开网页:

from selenium import webdriver

# 创建 WebDriver 对象,指明使用PhantomJS驱动
driver = webdriver.Chrome()  
#如未配置环境变量,请加上驱动路径
# wd = webdriver.Chrome(r'd:\webdrivers\chromedriver.exe')

# 调用WebDriver 对象的get方法 可以让浏览器打开指定网址
driver.get('https://www.baidu.com')
#get方法会一直页面被完成加载,然后才继续程序

打开浏览器后,还不能开始任务。

我们还得找到想要操控的网页元素。

定位元素的8种方式:

使用下面的方法,查找指定的元素进行操作即可
find_elements_by_tag_name 根据标签名找
find_element_by_id 根据id找节点
find_elements_by_name 根据name找
find_elements_by_xpath 根据xpath查找
find_elements_by_class_name 根据class名字查找
find_element_by_css_selector 根据css定位
find_elements_by_link_text 通过链接文字定位
find_elements_by_partial_link_text 通过部分链接文字定位

注意: find_elements 为查找多个元素,find_element为查找单元素

find_element_by_name  #结果为第一个元素
find_elements_by_name  #为多个同名元素

例:

<input type="text" name="user-name" id="passwd-id" />
# 通过tag name定位:
driver.find_element_by_tag_name("input")

# 通过id定位:
driver.find_element_by_id("passwd-id")
 
# 通过name定位:
driver.find_element_by_name("user-name")

 # 通过class name定位:
driver.find_element_by_class_name("class_name")

# 通过xpath定位:
driver.find_element_by_xpath("//input[@id='passwd-id']")
 
# 通过css定位:
driver.find_element_by_css_selector("#passwd-id")

爬虫的话,还要获取网页中的数据。很简单:

data = driver.find_element_by_id("passwd-id").text

访问元素内属性get_attribute()
获取超链接:

link = driver.find_element_by_link_text('text').get_attribute("href")

其他爬虫常用的方法和属性:

driver.page_source #获取网页源码
driver.title #页面标题
driver.find_element_by_id("passwd-id").text #获取元素的文本

关于定位,还有两个私有方法:

from selenium.webdriver.common.by import By

driver.find_element(By.XPATH,'//input[@id='passwd-id']')
driver.find_elements(By.XPATH,'//input[@id='passwd-id']')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值