【问题标题】:Scraping other elements from a tag in Selenium从 Selenium 中的标签中抓取其他元素
【发布时间】:2021-05-01 07:52:57
【问题描述】:

网页上的脚本如下:

<td class="bc bs o" data-bk="B3" data-odig="7.5" data-o="13/2" data-hcap="" data-fodds="7.5" data-ew-denom="4" data-ew-places="5"><p>7.5</p></td>

我想提取 Selenium 驱动程序中所有 td 标记的“data-bk”和“data-odig”值。我知道每个 td 标签都有 'data-bk' 和 'data-odig' 值,但我不知道每个标签的它们是什么(“B3”“7.5”)。我想打印“data-bk”值列表(“B3”等)。我尝试了以下方法:

answer = driver.find_element_by_css_selector('td[data-bk]')
print(answer.text)

但这不起作用

【问题讨论】:

    标签: python selenium web-scraping css-selectors webdriver


    【解决方案1】:
    driver.find_element_by_xpath('//td[@data-bk="B3"]')
    driver.find_element_by_css_selector('td[data-bk="B3"]')
    

    你可以使用 css 或 xpath

    xpath 语法是

    //tag[@attribute="attribute-value"]
    

    CSS 语法是

    tag[attribute="attribute_value"]
    

    **

    所以你可以使用任何属性,不仅是 id 或 name

    **

    【讨论】:

      【解决方案2】:

      从所有td标签中获取data-bkdata-odig的值

      首先你需要使用 find_elements_by_css_selector() 将返回 list 的元素,然后你需要 iterate

      其次要获取attribute value你需要使用element.get_attribute("attributename")


      代码

      Databk=[item.get_attribute("data-bk") for item in driver.find_elements_by_css_selector("td[data-bk][data-odig]")]
      DataOdig=[item.get_attribute("data-odig") for item in driver.find_elements_by_css_selector("td[data-bk][data-odig]")]
      print(Databk)
      print(DataOdig)
      

      这将返回data-bkdata-odig 的列表

      【讨论】:

        猜你喜欢
        • 2021-01-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-16
        • 2021-01-07
        • 2017-02-05
        • 1970-01-01
        相关资源
        最近更新 更多