如何获取span标签内的内容

时间:2021-07-07 07:14:29

标签: html css selenium web-scraping tags

#Example 1
<span class="levelone">
    <span class="leveltwo" dir="auto">
        ::before
        "Blue"
        ::after
    </span>
</span>



#Example 2
<div class="itemlist">
    <div dir="auto" style="text-align: start;">
        "mobile"
    </div>
</div>



#Example 3
<div class="quantity">
    <div class="color">...</div>
    <span class="num">10</span>
</div>

嗨,我正在尝试使用 selenium 从 html 中提取内容。我设法提取了例如 1 和 2 的内容,我使用的代码是

example1 = driver.find_elements_by_css_selector("span[class='leveltwo']")
example2 = driver.find_elements_by_css_selector("div[class='itemlist']")

并用

打印为文本
data = [dt.text for dt in example1] 
print(data)

我得到了“蓝色”作为示例 1 和“移动”作为示例 2。为了简单起见,上面给出的 html 是一次迭代,我已经用上面提到的类抓取了所有元素

然而,对于第三个例子,我尝试使用

example3a = driver.find_elements_by_css_selector("div[class='quantity']")

example3b = driver.find_elements_by_css_selector("div[class='num']")

example3c = driver. find_element_by_class_name("num")

但所有这些都返回了一个空列表。我不确定是不是因为示例 3 中没有 dir?我应该用什么方法来提取“10”?

2 个答案:

答案 0 :(得分:1)

对于第三个例子,你可以试试下面的css:

div.quantity span.num

在代码中你可以这样写:

example3a = driver.find_elements_by_css_selector("div.quantity span.num")
print(example3a.text)

print(example3a.get_attribute('innerHTML'))

答案 1 :(得分:0)

要专门提取您可以使用的 10

example3a = driver.find_elements_by_css_selector("div.quantity span.num")

要提取 <div class="quantity"> 内的两个元素,您可以使用

example3 = driver.find_elements_by_xpath("//div[@class='quantity']//*")
for el in example3:
    print(el.text)