首页 > 解决方案 > 使用硒刮擦

问题描述

嗨,我正在尝试抓取我最初使用 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

标签: python-3.xseleniumselenium-webdriverweb-scrapingbeautifulsoup

解决方案


获取权益值。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

推荐阅读