【问题标题】:How to get all the atributes from a `<circle>` element in a website如何获取网站中`<circle>`元素的所有属性
【发布时间】:2021-02-19 11:39:47
【问题描述】:

我正在尝试在 python 中使用 selenium 从 &lt;circle&gt; 元素中获取 cxcy 的位置,但我还没有找到任何方法。这就是网站和 HTML 的样子:

有人知道如何从图片中&lt;g&gt; 内的所有圆圈中获取所有cxcy 值吗?

【问题讨论】:

    标签: python selenium web-scraping xpath


    【解决方案1】:

    您可以使用get_attribute

    cx,cy = [],[]
    circle = driver.find_elements_by_tag_name('circle')
    for i in circle:
        cx.append(i.get_attribute('cx'))
        cy.append(i.get_attribute('cy'))
    

    【讨论】:

      【解决方案2】:

      借自"Extract value of attribute node via XPath":

      driver.find_element_by_xpath("path/to/circle/element/@cx")
      

      driver.find_element_by_xpath"path/to/circle/element/@cy")
      

      更新:对评论的回应

      要选择所有 cx 属性,请使用以下内容:

      path_to_circles = "//div[@class='g-act'/div/div/div/svg/g/g/circle"
      cx_values = driver.find_element_by_xpath(path_to_circles + "/@cx").extract()
      cy_values = driver.find_element_by_xpath(path_to_circles + "/@cy").extract()
      

      那么您可能还想将值从字符串更改为浮点数:

      cx_values = [float(cx) for cx in cx_values]
      cy_values = [float(cy) for cy in cy_values]
      

      并且可能将它们变成对列表(即 [(50.23, 115.36), ...]):

      values_from_graph = list(zip(cx_values, cy_values))
      

      请注意,我没有测试代码,所以请原谅我的任何拼写错误:)

      【讨论】:

      • 感谢您的回复!你能告诉我如何获得圆圈元素的路径吗?
      • @scraper 没问题,我已经更新了答案以更好地回答您的评论
      猜你喜欢
      • 2011-04-21
      • 1970-01-01
      • 2021-04-17
      • 1970-01-01
      • 2014-06-09
      • 2011-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多