Python中selenium+webdriver爬取数据时各种节点元素的获取方式

2023-11-19

新建实例driver = webdriver.Chrome()
1.通过标签属性Id查找元素
方法:find_element_by_id(element_id)
实例:driver.find_element_by_id(“Username”)
2.通过标签属性name查找元素
方法:find_element_by_name(element_name)
实例:driver.find_element_by_name(“name”)
3.通过标签Xpath路径查找元素
方法:find_element_by_xpath(xpath)
实例:driver.find_element_by_xpath(“//div[@id=’Container’]/div/div/ul/li[4]”)括号内为xpath路径,li[4]是指ul标签里边的第四个

  • 标签,xpath比较简单,用法不详细介绍
    4.通过标签名tagname查找元素
    方法:find_element_by_tag_name(tag_name)
    实例:driver.find_element_by_tag_name(“input”)
    注意:通过tag_name查找时使用find_element_by_tag_name查找到的是第一个标签的tag_name
    5.通过标签中的元素文本链接查找元素
    < a href = “http://www.google.com/search?q=cheese” > cheese < / a >
    方法:cheese = driver.find_element_by_link_text(“cheese”)
    方法:driver.find_element(By.LINK_TEXT, “cheese”)
    通过查找部分链接文件匹配元素的两种方法
    search for cheese
    方法:driver.find_element_by_partial_link_text(“cheese”)
    方法:driver.find_element(By.PARTIAL_LINK_TEXT, “cheese”)
  • 6.通过标签的class属性查找元素
    方法:find_elements_by_class_name(class_name)
    实例:driver.find_elements_by_class_name(“x-panel-body”)
    7.通过css样式查找元素
    方法:find_element_by_css_selector()
    实例:driver.find_element_by_css_selector(“abcclass”)css_selector括号内使用方法很多,不列举了,可通过多种属性获得,如:id,class,等等
    温馨提示:find_elements_by_css_selector()查询到的是一个集合,如果id名字重复的时候可以采取find_elements_by_id(),其他的查询方式同理;
    8.浏览器中加载url
    方法:get(url)
    实例:driver.get(“http//:www.xxxx.com”)
    9.向前
    方法:forward()
    实例:driver.forward()
    10.返回当前会话中的cookies
    方法:get_cookies()
    实例:driver.get_cookies()
    11.根据cookie name 查找
    方法:driver.get_cookie(cookie_name)
    实例:driver.get_cookie(“NET_SessionId”)
    12.截取当前页面
    方法:get_screenshot_as_file(filename)
    实例:driver.get_screenshot_as_file(“D:\Program Files\Python37\yang.png”)
    13.获取当前窗口的坐标
    方法:get_window_position()
    实例:driver.get_window_position()
    14.获取当前窗口的长和宽
    方法:get_window_size()
    实例:driver.get_window_size()


    15.获取当前页面的Url函数
    方法:current_url
    实例:driver.current_url
    16.获取元素坐标
    方法:location
    解释:首先查找到你要获取元素的,然后调用location方法
    实例:driver.find_element_by_xpath(“//*[@id=’tablechart’]/tbody/tr[14]/td[9]”).location
    17.表单的提交
    方法:submit
    解释:查找到表单(from)直接调用submit即可
    实例:driver.find_element_by_id(“form1”).submit()
    18.获取CSS的属性值
    方法:value_of_css_property(css_name)
    实例:
    driver.find_element_by_css_selector(“input.btn”).value_of_css_property(“input.btn”)
    19.获取元素的属性值
    方法:get_attribute(element_name)
    实例:driver.find_element_by_id(“sellaiyuan”).get_attribute(“sellaiyuan”)
    20.判断元素是否被选中
    方法:is_selected()
    实例:driver.find_element_by_id(“form1”).is_selected()
    21.返回元素的大小
    方法:size
    实例:driver.find_element_by_id(“iptPassword”).size
    返回值:{‘width’: 250, ‘height’: 30}
    22.判断元素是否显示
    方法:is_displayed()
    实例:driver.find_element_by_id(“iptPassword”).is_displayed()
    23.判断元素是否被使用
    方法:is_enabled()
    实例:driver.find_element_by_id(“iptPassword”).is_enabled()
    24.获取元素的文本值
    方法:text
    实例:driver.find_element_by_id(“iptUsername”).text
    25.元素赋值
    方法:send_keys(*values)
    实例:driver.find_element_by_id(“iptUsername”).send_keys(‘admin’)
    注意如果是函数需要增加转义符u,eg.
    driver.find_element_by_id(“iptUsername”).send_keys(u’青春’)
    26.返回元素的tagName
    方法:tag_name
    实例:driver.find_element_by_id(“iptUsername”).tag_name
    27.删除浏览器所以的cookies
    方法:delete_all_cookies()
    实例:driver.delete_all_cookies()
    28.删除指定的cookie
    方法:delete_cookie(name)
    实例:deriver.delete_cookie(“my_cookie_name”)
    29.关闭浏览器
    方法:close()
    实例:driver.close()
    30.关闭浏览器并且推出驱动程序
    方法:quit()
    实例:driver.quit()
    31.返回上一页
    方法:back()
    实例:driver.back()
    32.设置等待超时
    方法:implicitly_wait(wait_time)
    实例:driver.implicitly_wait(30)
    33.浏览器窗口最大化
    方法:maximize_window()
    实例:driver.maximize_window()
    34.查看浏览器的名字
    方法:name
    实例:drvier.name
    本文大部分来自前人的整理,

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python中selenium+webdriver爬取数据时各种节点元素的获取方式 的相关文章

  • Django 管理员在模型编辑时间歇性返回 404

    我们使用 Django Admin 来维护导出到我们的一些站点的一些数据 有时 当单击标准更改列表视图来获取模型编辑表单而不是路由到正确的页面时 我们会得到 Django 404 页面 模板 它是偶尔发生的 我们可以通过重新加载三次来重现它
  • 如何在flask中使用g.user全局

    据我了解 Flask 中的 g 变量 它应该为我提供一个全局位置来存储数据 例如登录后保存当前用户 它是否正确 我希望我的导航在登录后在整个网站上显示我的用户名 我的观点包含 from Flask import g among other
  • 通过最小元素比较对 5 个元素进行排序

    我必须在 python 中使用元素之间的最小比较次数来建模对 5 个元素的列表进行排序的执行计划 除此之外 复杂性是无关紧要的 结果是一个对的列表 表示在另一时间对列表进行排序所需的比较 我知道有一种算法可以通过 7 次比较 总是在元素之间
  • 如何使用 Java 和 Selenium WebDriver 在 C 目录中创建文件夹并需要将屏幕截图保存在该目录中?

    目前正在与硒网络驱动程序和代码Java 我有一种情况 我需要在 C 目录中创建一个文件夹 并在该文件夹中创建我通过 selenium Web 驱动程序代码拍摄的屏幕截图 它需要存储在带有时间戳的文件夹中 如果我每天按计划运行脚本 所有屏幕截
  • 使用 matplotlib 绘制时间序列数据并仅在年初显示年份

    rcParams date autoformatter month b n Y 我正在使用 matpltolib 来绘制时间序列 如果我按上述方式设置 rcParams 则生成的图会在每个刻度处标记月份名称和年份 我怎样才能将其设置为仅在每
  • 如何从网页中嵌入的 Tableau 图表中抓取工具提示值

    我试图弄清楚是否有一种方法以及如何使用 python 从网页中的 Tableau 嵌入图形中抓取工具提示值 以下是当用户将鼠标悬停在条形上时带有工具提示的图表示例 我从要从中抓取的原始网页中获取了此网址 https covid19 colo
  • 是否可以忽略一行的pyright检查?

    我需要忽略一行的pyright 检查 有什么特别的评论吗 def create slog group SLogGroup data Optional dict None SLog insert one SLog group group da
  • SQLALchemy .query:类“Car”的未解析属性引用“query”

    我有一个这里已经提到的问题https youtrack jetbrains com issue PY 44557 https youtrack jetbrains com issue PY 44557 但我还没有找到解决方案 我使用 Pyt
  • 如何使用 OpencV 从 Firebase 读取图像?

    有没有使用 OpenCV 从 Firebase 读取图像的想法 或者我必须先下载图片 然后从本地文件夹执行 cv imread 功能 有什么办法我可以使用cv imread link of picture from firebase 您可以
  • AWS EMR Spark Python 日志记录

    我正在 AWS EMR 上运行一个非常简单的 Spark 作业 但似乎无法从我的脚本中获取任何日志输出 我尝试过打印到 stderr from pyspark import SparkContext import sys if name m
  • 绘制方程

    我正在尝试创建一个函数 它将绘制我告诉它的任何公式 import numpy as np import matplotlib pyplot as plt def graph formula x range x np array x rang
  • 在Python中获取文件描述符的位置

    比如说 我有一个原始数字文件描述符 我需要根据它获取文件中的当前位置 import os psutil some code that works with file lp lib open path to file p psutil Pro
  • IO 密集型任务中的 Python 多线程

    建议仅在 IO 密集型任务中使用 Python 多线程 因为 Python 有一个全局解释器锁 GIL 只允许一个线程持有 Python 解释器的控制权 然而 多线程对于 IO 密集型操作有意义吗 https stackoverflow c
  • 如何在Python中对类别进行加权随机抽样

    给定一个元组列表 其中每个元组都包含一个概率和一个项目 我想根据其概率对项目进行采样 例如 给出列表 3 a 4 b 3 c 我想在 40 的时间内对 b 进行采样 在 python 中执行此操作的规范方法是什么 我查看了 random 模
  • 如何在seaborn displot中使用hist_kws

    我想在同一图中用不同的颜色绘制直方图和 kde 线 我想为直方图设置绿色 为 kde 线设置蓝色 我设法弄清楚使用 line kws 来更改 kde 线条颜色 但 hist kws 不适用于显示 我尝试过使用 histplot 但我无法为
  • Scrapy:如何使用元在方法之间传递项目

    我是 scrapy 和 python 的新手 我试图将 parse quotes 中的项目 item author 传递给下一个解析方法 parse bio 我尝试了 request meta 和 response meta 方法 如 sc
  • 发送用户注册密码,django-allauth

    我在 django 应用程序上使用 django alluth 进行身份验证 注册 我需要创建一个自定义注册表单 其中只有一个字段 电子邮件 密码将在服务器上生成 这是我创建的表格 from django import forms from
  • 在 Qt 中自动调整标签文本大小 - 奇怪的行为

    在 Qt 中 我有一个复合小部件 它由排列在 QBoxLayouts 内的多个 QLabels 组成 当小部件调整大小时 我希望标签文本缩放以填充标签区域 并且我已经在 resizeEvent 中实现了文本大小的调整 这可行 但似乎发生了某
  • 使用 Python 的 matplotlib 选择在屏幕上显示哪些图形以及将哪些图形保存到文件中

    我想用Python创建不同的图形matplotlib pyplot 然后 我想将其中一些保存到文件中 而另一些则应使用show 命令 然而 show 显示all创建的数字 我可以通过调用来避免这种情况close 创建我不想在屏幕上显示的绘图
  • Statsmodels.formula.api OLS不显示截距的统计值

    我正在运行以下源代码 import statsmodels formula api as sm Add one column of ones for the intercept term X np append arr np ones 50

随机推荐