微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – 无法从网页中获取少量项目

我在python中编写了一个与selenium结合使用的脚本来解析网页中的一些项目.无论如何我无法让它工作.我所追求的项目(可能)在iframe中.我试图切换它,但这没有任何影响.除了TimeoutException,当我遇到我试图切换iframe的行时,我仍然没有得到任何东西.我怎样才能让它运转起来.提前致谢:

这里是网页链接URL

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import webdriverwait
from selenium.webdriver.support import expected_conditions as EC

url = "replace_with_above_url"

driver = webdriver.Chrome()
driver.get(url)
wait = webdriverwait(driver, 10)

wait.until(EC.frame_to_be_available_and_switch_to_it((By.ID, "Tradingview_fe623")))

for item in wait.until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, ".quick .apply-common-tooltip"))):
    print(item.text)

driver.quit()

我追求的物品所在的元素:

<div class="quick">
    <span class="apply-common-tooltip">5</span>
    <span class="apply-common-tooltip">1h</span>
    <span class="apply-common-tooltip selected">1D</span>
    <span class="apply-common-tooltip">1M</span>
    <span class="apply-common-tooltip">1D</span>
</div>

这是我期望的输出(当我尝试使用css选择器时它在本地工作):

5
1h
1D
1M
1D

这是它在网络上的样子:

enter image description here

解决方法:

位于2个嵌套iframe内的必需节点,因此您需要逐个切换到它们.请注意,动态生成的第二个的id / name.试着替换

wait.until(EC.frame_to_be_available_and_switch_to_it((By.ID, "Tradingview_fe623")))

wait.until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR, ".abs")))
wait.until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR, "iframe[id^='Tradingview_']")))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐