#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”?
答案 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)