python-3.x - 使用硒刮擦
问题描述
嗨,我正在尝试抓取我最初使用 Bs4 的这个网站,这样可以获取某些元素。部门、名称等。但我无法使用它来获取财务数据。下面我复制了一些page_source,“-”在这种情况下应该是0.0663。我相信我正在尝试抓取 javascript,我环顾四周,但我所看到的解决方案都没有为我工作。我想知道是否有人可以帮我破解这个。
虽然如果有人可以发布一些工作代码,我将不胜感激,但如果您能指出正确的方向以及了解在 html 中查找的内容,我将不胜感激,这向我展示了我需要做什么以及如何获得它有点东西。
网址:https ://www.tradingview.com/symbols/LSE-TSCO/
HTML:
<span class="tv-widget-fundamentals__label apply-overflow-tooltip">
Return on Equity (TTM)
</span>
<span class="tv-widget-fundamentals__value apply-overflow-tooltip">
—
</span>
蟒蛇代码:
url = "https://www.tradingview.com/symbols/LSE-TSCO/"
options = webdriver.ChromeOptions()
options.add_argument('headless')
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get(url)
html = driver.page_source
解决方案
获取权益值。Induce WebDriverWait
() 并等待visibility_of_element_located
() 及以下的xpath。
driver.get(url)
print(WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.XPATH,"//span[contains(.,'Return on Equity (TTM)')]/following-sibling::span[1]"))).text)
您需要导入以下库。
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
推荐阅读
- node.js - 如何在 Mongo 中手动添加或设置 updatedAt 字段
- arrays - 在 Excel 中显示 VBA 返回的数组(不确定长度)
- excel - 启用和禁用 com 加载项
- c# - 与 Access 数据库的 C# 连接失败。研究指出 32 位访问与 64 位项目,但解决方案不起作用
- flutter - 子widget的build方法后触发的设置父widget状态的回调不会触发其父widget的build方法
- linux - 保持活动流式ffmpeg rtmp
- r - 如何将 glm() 整洁地放入类似 lmList 的结构中?
- visual-studio - 需要使用 Azure Devops 中的存储库自动每晚同步服务器硬盘驱动器上的文件
- javascript - 为什么我无法使用 Knex 将 false (0) 设置为我的表格的默认值?
- flutter - 如何使用 Google Maps Plugin Flutter 为另一个类的相机设置动画