Python爬虫成神之路----教你玩转python自动化之selenium的使用(二)

本文详细介绍了Selenium自动化测试工具如何定位网页元素,包括通过id、name、xpath、class name等八种方式,并提供了实例代码,展示了在豆瓣Top250页面上的应用。此外,强调了Selenium在处理动态渲染内容方面的优势。
摘要由CSDN通过智能技术生成

(一) 前言

:前面已经介绍了selenium的基本安装与相关的简单使用,本篇博客将以定位元素讲解为主,以爬虫示例为辅,带大家慢慢深入selenium与爬虫的知识海洋,冲!

注意!注意!注意!:
selenium自动化加载浏览器后,只要你能在F12开发者工具中能够审查到的元素就能直接获取,不用像普通爬虫一样麻烦,不需要考虑js动态渲染等问题,这也是我爱上selenium的原因之一!!!

(二)定位元素八种方式

定位元素在爬虫领域十分常用并重要,因此掌握基本的定位知识会帮你大大降低学习爬虫的难度,selenium在定位元素方面提供了八种定位方式:

  1. id
  2. name
  3. class name
  4. tag name
  5. link text
  6. partial link text
  7. xpath
  8. css selector
定位单个元素定位多个元素(以列表形式返回)含义
find_element_by_idfind_elements_by_id通过元素id定位
find_element_by_namefind_elements_by_name通过元素name定位
find_element_by_xpathfind_elements_by_xpath通过xpath表达式定位
find_element_by_link_textfind_elements_by_link_text通过完整文本值定位
find_element_by_partial_link_textfind_elements_by_partial_link_text通过部分文本值定位
find_element_by_tag_namefind_elements_by_tag_name通过标签定位
find_element_by_class_namefind_elements_by_class_name通过类名进行定位
find_elements_by_css_selectorfind_elements_by_css_selector通过css选择器进行定位

(三)定位元素实例

声明:本次测试网站(仅供测试,勿作商业用途)

豆瓣top250:https://movie.douban.com/top250
右击鼠标右键获取网页源代码分析元素:
在这里插入图片描述
本次就以此网页源代码作定位元素展示

1.通过元素id定位

定位方式:find_element_by_id(定位多个元素就不做多赘述,有兴趣的可以自行测试)

定位前确定要定位的元素id:
在这里插入图片描述

代码及结果展示:
from selenium import webdriver
driver=webdriver.Chrome()# 获取Chrome浏览器对象
#driver=webdriver.Firefox() 获取火狐浏览器对象
driver.get(url="https://movie.douban.com/top250") #加载浏览器,打开网页窗口
dr=driver.find_element_by_id("inp-query").get_attribute("placeholder") #get_attribute为获取属性的方法
print(dr)  #打印属性为"placeholder"的属性值

在这里插入图片描述
当然,其他属性你也可以以同样方式获取

2.通过元素name定位

定位方式:find_element_by_name(定位多个元素就不做多赘述,有兴趣的可以自行测试)
定位前确定要定位的元素name:
在这里插入图片描述

代码及结果展示:
from selenium import webdriver
driver=webdriver.Chrome()# 获取Chrome浏览器对象
#driver=webdriver.Firefox() 获取火狐浏览器对象
driver.get(url="https://movie.douban.com/top250") #加载浏览器,打开网页窗口
dr=driver.find_element_by_name("cat").get_attribute("value")
print(dr)

在这里插入图片描述

3.通过xpath表达式定位(本人最喜欢)

xpath相关知识:https://www.runoob.com/xpath/xpath-tutorial.html
(不要担心,即使不懂你也可以用)

定位方式:find_element_by_xpath(定位多个元素就不做多赘述,有兴趣的可以自行测试)

定位前确定要定位的元素xpath表达式:
在这里插入图片描述
怎么获取xpath表达式?你只需要右击上面红色箭头所指处,点击copy,就有获取本元素的xpath表达式
本标签xpath://*[@id=“content”]/div/div[1]/ol/li[1]/div/div[2]/div[1]/a/span[1]

代码及结果展示
from selenium import webdriver
driver=webdriver.Chrome()# 获取Chrome浏览器对象
#driver=webdriver.Firefox() 获取火狐浏览器对象
driver.get(url="https://movie.douban.com/top250") #加载浏览器,打开网页窗口
dr=driver.find_element_by_xpath('//*[@id="content"]/div/div[1]/ol/li[1]/div/div[2]/div[1]/a/span[1]')
print(dr.text)  #注意通过xpath获取的是元素对象,需要text属性才能获取值

在这里插入图片描述

4.通过标签定位

定位方式:find_elements_by_tag_name(通过标签定位单个元素基本不用,因此这里用定位多个元素)

定位前确定要定位的元素标签:<span>
在这里插入图片描述**注意注意!**网页里有很多<span>标签,因此你需要精确知道位置才行,所以一般不推荐

代码及结果展示
from selenium import webdriver
import time
driver=webdriver.Chrome()# 获取Chrome浏览器对象
#driver=webdriver.Firefox() 获取火狐浏览器对象
driver.get(url="https://movie.douban.com/top250") #加载浏览器,打开网页窗口
time.sleep(2)
dr=driver.find_elements_by_tag_name("span")
for i in dr[3:6]:
    print(i.text)

注意,获取多个标签时返回的是列表形式!!!
在这里插入图片描述

(四)建议和展望

本次示例并没给全,希望小伙伴们自行尝试,如果有疑问,可以在评论区留下你的疑惑,博主将会耐心解答
在后续文章,将会详细阐述selenium的使用方法及与爬虫的相关结合使用,关注我吧

好了,本次文章就到这里,我们下期再见!

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

拉不拉斯

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

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

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

打赏作者

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

抵扣说明:

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

余额充值