首页 > 解决方案 > 在深度 div 树中使用 beautifulsoup 提取属性失败

问题描述

我正在尝试从深<div>树中提取属性。我尝试find_all并选择;都失败了。请帮忙。灰色的线是我需要的。我需要得到data-num2 的值。

基本上,我需要得到https://www.xin.com/c2b_car_o/201/右上角的橙色值

谢谢您的帮助!

在此处输入图像描述

标签: pythonbeautifulsoup

解决方案


感谢您的帮助。我终于找到了解决方案。

[问题]:我无法使用beautifulsoup 定位网页元素。
[原因]:该元素是由 javascript 渲染的。我不知道为什么?但这是我从另一个来源得到的答案。有人告诉我我需要使用硒。
[解决方案]:我使用 selemium 成功提取了数字。请参阅下面的代码。
[更多帮助]:问题解决了!但我不清楚什么情况对硒有利。以及我如何知道 javascript 呈现了哪些特定元素无法使用 beautifulsoup 提取。如果可以使用 bs4,请尝试并发布您的代码。或者,请提供更多解释。谢谢。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome('G:\chromedriver\chromedriver')
driver.get("https://www.xin.com/c2b_car_o/201/")
elements = driver.find_elements_by_xpath('//*[@class="mt-number-animate-dom"]')
num_str=[el.get_attribute("data-num") for el in elements]
print(int(''.join(num_str)))

推荐阅读