当前位置: 首页 > wzjs >正文

网站建设开发团队介绍大一网页设计作业成品

网站建设开发团队介绍,大一网页设计作业成品,宜宾做网站,网站设计怎么收费🌟想系统化学习爬虫技术?看看这个:[数据抓取] Python 网络爬虫 - 学习手册-CSDN博客 在使用 Selenium 时,往往需要先定位到指定元素,然后再执行相应的操作。例如,再向文本输入框中输入文字之前,…

🌟想系统化学习爬虫技术?看看这个:[数据抓取] Python 网络爬虫 - 学习手册-CSDN博客

在使用 Selenium 时,往往需要先定位到指定元素,然后再执行相应的操作。例如,再向文本输入框中输入文字之前,我们需要先定位到文本框对应的元素 <input> 之后,再对该元素对应的对象执行输入文本的操作。

0x01:WebDriver 类元素定位方法

Selenium 的 WebDriver 类中提供了多种定位元素的方法,这些方法有的可以定位单个元素,有的可以直接定位多个元素,WebDriver 类中定位单个元素的方法如下表所示:

方法解析
find_element()通过指定方式定位元素
find_element_by_id()通过 ID 属性定位元素
find_element_by_name()通过 name 属性定位元素
find_element_by_xpath()通过 XPath 的路径表达式定位元素
find_element_by_link_text()通过链接文本定位元素
find_element_by_partial_link_text()通过部分链接文本定位元素
find_element_by_tag_name()通过标签名定位元素
find_element_by_class_name()通过 class 属性定位元素
find_element_by_css_selector()通过 CSS 选择器定位元素

上面表中所有方法都会返回一个 WebElement 类的对象(通过 text 属性可以打印文本内容),该对象用于描述网页上的一个元素。需要注意的是,上面表中所有的方法只能定位第一次符合要求的元素。

如果你希望定位符合要求的所有元素,就需要使用定位多个元素的方法。定位多个元素的方法名称与用法都与单个元素的定位名称相似,仅需要将 element 设为复数形式 elements 即可。定位多个元素的方法返回值是包含所有符合元素的列表。

0x02:通过 id 属性定位元素

在 HTML 中,id 属性用于规定元素的唯一 ID 值。例如,百度搜索首页,左上角的那些外链,就对应着 id 属性值为 s-top-left 的标签,通过这个 id 我们就可以精确定位这一片的内容:

在 Selenium 中,通过 find_element_by_id() 方法可以通过 id 属性定位页面元素,并返回对应的元素内容:

from selenium import webdriver
import time
​
driver = webdriver.Chrome()          # 创建浏览器对象
driver.get("https://www.baidu.com")  # 访问百度首页
​
# 通过 id 属性定位元素
element = driver.find_element_by_id('s-top-left')
# 通过 text 属性输出元素的文本内容
print(element.text)

0x03:通过 class 属性定位元素

在 HTML 中,class 属性用于规定元素的一个或多个类名,大多数情况下用于指向样式表中的类。我们继续以百度首页为例,如下,通过在 “开发者工具” 中输入 .mnav 即可筛选出一堆 Class 属性中含有 mnav 的标签:

在 Selenium 中,通过 find_element_by_class_name() 方法我们可以通过 class 属性定位元素,并返回匹配的元素,代码如下:

from selenium import webdriver
​
driver = webdriver.Chrome()          # 创建浏览器对象
driver.get("https://www.baidu.com")  # 访问百度首页
​
# 通过 class 属性定位所有属性含有 mnav 的标签
element_list = driver.find_elements_by_class_name('mnav')
​
# 打印 class 中含有 mnav 元素的内容
for element in element_list:print(element.text)

0x04:通过指定方法定位元素 — find_element()

Selenium 提供了一个通用的 find_element() 方法来定位元素(想要定位多个元素的话需要使用 find_elements())。与其它几个方法相比,它有更加灵活的使用方式,我们可以通过指定参数,来选择定位的方法。find_element() 声明如下:

find_element(self, by=By.ID, value=None)

该方法接收两个参数,参数 value 表示元素的名称或者属性的值,亦或者对应查询方式的传参。参数 by 支持的取值及其说明如下表所示:

取值说明
By.ID通过 id 属性定位元素
By.NAME通过 name 属性定位元素
By.CLASS_NAME通过 class 属性定位元素
By.TAG_NAME通过标签名定位元素
By.LINK_TEXT通过链接文本定位元素
By.PARTIAL_LINK_TEXT通过部分链接文本定位元素
By.CSS_SELECTOR通过 CSS 选择器定位元素
By.XPATH通过 XPath 的路径表达式定位元素

例如,使用 find_element() 方法定位百度搜索首页中 class 属性值包含 mnav 的第一个元素:

from selenium.webdriver.common.by import By # 导入 By 类
from selenium import webdriver
​
driver = webdriver.Chrome()          # 创建浏览器对象
driver.get("https://www.baidu.com")  # 访问百度首页
​
# 通过 class 属性定位第一个属性中含有 mnav 的标签
element = driver.find_element(by=By.CLASS_NAME, value='mnav')
# element_list = driver.find_elements(by=By.CLASS_NAME, value='mnav') # 定位多个元素
​
print(element.text)

0x05:通过标签名定位元素

这里所说的标签就是指 HTML 标签,比如超链接的 <a> 标签,又比如常见的块 <div>。我们依旧以百度首页为例,可以看到,百度首页中包含很多超链接标签:

假设我们要获取当前页面所有的 <a> 标签,此时我们就可以通过 find_elements_by_tag_name() 函数实现:

from selenium import webdriver
​
driver = webdriver.Chrome()          # 创建浏览器对象
driver.get("https://www.baidu.com")  # 访问百度首页
​
# 获取当前页面中所有的 <a> 标签
element_list = driver.find_elements_by_tag_name('a')
print(f"[ + ] 当前页面共捕获 <a> 标签: {len(element_list)} 个")
​
# 打印每个标签中的文本
for element in element_list:print(element.text)

0x06:通过链接文本定位元素

超链接即 <a> 标签,超链接文本,即被 <a> 标签包裹的内容。Selenium 提供了两种方式,可以直接通过超链接文本定位元素,一种是完全匹配,即 <a> 标签内部的内容要与预期内容完全相同才匹配成功;另一种是模糊匹配,比如你想匹配 “新” 字,那么包含 “新闻”,“新鲜” 等这类的标签都会被选中:

from selenium import webdriver
​
driver = webdriver.Chrome()          # 创建浏览器对象
driver.get("https://www.baidu.com")  # 访问百度首页
​
# 通过链接文本定位元素
element = driver.find_element_by_link_text("新闻") # 完全匹配
print(element) # 打印元素
​
element = driver.find_elements_by_partial_link_text("新") # 模糊匹配,只要里面包含了 "新" 的标签就会被匹配上
print(element)

0x07:通过 XPath 路径表达式定位元素

XPath 即 XML 路径查询语言(XML Path Language),是一种用于确定 XML 文档中部分节点位置的语言。它起初只支持搜索 XML 文档,更新后能支持搜索 HTML 文档。

关于 XPath 的语法,笔者在前面的章节中介绍过了(如果没有,一定是笔者还没发)。所以这里笔者就不详细介绍它的语法了,直接上演示,假设我们要选中百度首页的 “新闻”,通过 “XPATH 测试插件”,我们可以直接获取其 XPath 定位语法:

//div[@id='s-top-left']/a[@class='mnav c-font-normal c-color-t'][1]

在 Selenium 中,我们可以通过 find_element_by_xpath() 来使用 XPath 语法定位元素:

from selenium import webdriver
​
driver = webdriver.Chrome()          # 创建浏览器对象
driver.get("https://www.baidu.com")  # 访问百度首页
​
# 通过 XPath 定位元素
element = driver.find_element_by_xpath("//div[@id='s-top-left']/a[@class='mnav c-font-normal c-color-t'][1]")
print(element.text)

http://www.dtcms.com/wzjs/65343.html

相关文章:

  • 黑客以网站做跳板入侵方法网络软文是什么意思
  • 找别人做网站靠谱吗简述网站制作的步骤
  • 页网站设计seo如何优化网站推广
  • 网站建设小江打广告推广怎么做
  • 字体logo设计在线生成器网站seo排名优化价格
  • php mysql怎么编写视频网站优化排名案例
  • 桥头镇做网站简单网页制作模板
  • 免费学建筑知识网站找网站公司制作网站
  • 官方网站下载打印机驱动草根站长工具
  • 最安全的软件下载网站网址怎么创建
  • 网站seo哪家公司好今日头条官网
  • wordpress 更改iconseo排名优化工具推荐
  • 重庆建设工程施工安全管理信息网seo指导
  • 制作网站程序淘宝关键词搜索量查询
  • 武汉网站维护郑州seo排名优化公司
  • 网站开发的话术资源搜索引擎搜索神器网
  • 没有营业执照可以做网站吗千网推软文推广平台
  • 怎么做网站浮动模块h5下一页
  • 佛山网站制作免费网站建设
  • 驻马店营销型网站建设优化推广重庆森林讲了什么故事
  • 帮别人做网站犯法吗百度收录查询工具
  • 企业网站轮播图怎么做太原推广团队
  • 装修公司排名 装饰设计广州网站seo推广
  • 网站越来越难做营销策划方案案例
  • 做批发国外什么网站好b2b重庆网站seo多少钱
  • 写男主重生做网站的小说长沙seo搜索
  • 大学生网页设计心得体会百度关键词优化曝光行者seo
  • 真题真做报名网站十八未成年禁用免费app
  • 平台戚里带崇墉友情链接seo
  • 软件系统开发报价单广州seo网站开发