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

selenium记录Spiderbuf例题C03

防止自己遗忘,故作此为记录。

鸢尾花数据集(Iris Dataset)

这道题牵扯到JS动态加载。

步骤:

(1)进入例题,需要找到按钮规律。

flip_xpath: str = r"//li/a[@onclick='getIrisData({});']"


  (2)找到 Sepal Width列的XPATH:

target_xpath: str = r"//tbody/tr/td[3]"


 (3)这道题比C01、C02的星级都高的原因我觉得是:

JS动态加载需要极大时间,不然网站反应不过来。

所以只能用sleep来等待了。


源代码:

# -*- coding: utf-8 -*-
# -*- file: C03.py  -*-

from selenium.webdriver import Chrome
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.chrome.service import Service as ChromeService
from selenium.webdriver.chrome.options import Options as ChromeOptions
from time import sleep


target_url: str = r"https://www.spiderbuf.cn/playground/c03"
service: object = ChromeService(r"c03\chromedriver-win64\chromedriver.exe")
options: object = ChromeOptions()
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_argument("--disable-blink-features=AutomationControlled")

driver: object = Chrome(service=service, options=options)
driver.get(target_url)

target_xpath: str = r"//tbody/tr/td[3]"
flip_xpath: str = r"//li/a[@onclick='getIrisData({});']"
s: float = 0.0
page: int = 1

while page < 6:
    page += 1
    sleep(1)
    WebDriverWait(driver, 10).until(expected_conditions.visibility_of_element_located((By.XPATH, target_xpath)))
    res: list = driver.find_elements(By.XPATH, target_xpath)
    print("time: {}".format(page), res[0].text, res[1].text)
    s += sum([eval(each.text) for each in res])
    try:
        driver.find_element(By.XPATH, flip_xpath.format(page)).click()
    except:
        break
    sleep(5)


print(f"{s=}")


http://www.kler.cn/a/530983.html

相关文章:

  • ieee模版如何修改参考文献的格式以及多作者省略等
  • MATLAB实现单层竞争神经网络数据分类
  • 小试牛刀,AI技术实现高效地解析和转换多种文档格式
  • 深入核心:一步步手撕Tomcat搭建自己的Web服务器
  • 51单片机 01 LED
  • vue入门到实战 三
  • Macos编译openjdk因berkeley-db版本问题失败解决办法
  • 为什么命令“echo -e “\033[9;0]“ > /dev/tty0“能控制开发板上的LCD不熄屏?
  • 制造业设备状态监控与生产优化实战:基于SQL的序列分析与状态机建模
  • 【PyQt】超级超级笨的pyqt计算器案例
  • deepseek 本地化部署和小模型微调
  • 当前热门文生图大模型介绍与优缺点分析
  • Rust `struct`和 `enum`番外《哪吒、白蛇传?》
  • 嵌入式知识点总结 操作系统 专题提升(三)-并发与互斥
  • 使用React和Material-UI构建TODO应用的前端UI
  • 无人机飞行惯导系统技术详解
  • deepseek本地部署+结合思路
  • sql主从同步
  • Med-R2:基于循证医学的检索推理框架:提升大语言模型医疗问答能力的新方法
  • URL 和 URI 的区别
  • java命令详解
  • 二维前缀和:高效求解矩阵区域和问题
  • 【实战篇】Android安卓本地离线实现视频检测人脸
  • LabVIEW图片识别逆向建模系统
  • 嵌入式知识点总结 操作系统 专题提升(四)-上下文
  • Vue3学习笔记-条件渲染和列表渲染-3