如何按照Selenium和Python提供的html从嵌套div中提取文本154

时间:2018-08-10 04:07:43

标签: python selenium selenium-webdriver xpath css-selectors

我是Python网络抓取的新手。我正在编写一个程序,尝试使用Python中的硒库来捕获名为“ stat answers col-3”的类的数字154。

<div id="user-card" class="user-card">

            <div class="row col-content">

                <div class="col-right col-4">  
                    <div class="user-links">
                                <div class="user-stats">
        <div class="row">
            <div class="stat answers col-3">
                <span class="number">154</span>
                answers
            </div>

            <div class="stat questions col-3">
                <span class="number">44</span>
                questions
            </div>

        </div>
    </div>
    </div>
    </div>                    
    </div>

这是我的代码:

from selenium import webdriver
driver = webdriver.Chrome(executable_path="/Users/username/Downloads/chromedriver")
driver.get("website address")
content = driver.find_element_by_xpath('//div[@id="user-card" and @class="stat answers col-3"]').__getattribute__("number")

但是,我无法运行该程序。可以请任何人指出我犯错的地方。

1 个答案:

答案 0 :(得分:0)

根据给定的 HTML ,要提取名为"stat answers col-3"的类的数量 154 ,您可以使用以下任一解决方案:

  • css_selector

    content = driver.find_element_by_css_selector("div.user-card#user-card div.answers span.number").get_attribute("innerHTML")
    
  • xpath

    content = driver.find_element_by_xpath("//div[@class='user-card' and @id='user-card']//div[@class='stat answers col-3']//span[@class='number']").get_attribute("innerHTML")