python - 在深度 div 树中使用 beautifulsoup 提取属性失败
问题描述
我正在尝试从深<div>
树中提取属性。我尝试find_all
并选择;都失败了。请帮忙。灰色的线是我需要的。我需要得到data-num
2 的值。
基本上,我需要得到https://www.xin.com/c2b_car_o/201/右上角的橙色值
谢谢您的帮助!
解决方案
感谢您的帮助。我终于找到了解决方案。
[问题]:我无法使用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)))
推荐阅读
- node.js - 如何每 2 分钟执行一次类的方法?
- bash - 选项卡完成忽略 Bash/Debian 中的一些文件
- php - 以相同的形式创建和更新
- c# - 删除动态创建的 HTML 表行 - 生命周期/视图状态问题
- mysql - SELECT INTO 在存储过程中不起作用
- perl - Perl 变量赋值副作用
- django - 未找到任何参数的“blog_detail”反向。尝试了 1 种模式:['blog/(?P
[0-9]+)$'] - javascript - 如何处理three.js中的透明纹理和深度?
- sql - 如何将同一张表中的多行合并为单行结果?
- c# - 用选择器填充 ImageSource