为什么这个特定的URL的Python代码找不到标记?在Chrome开发工具中,您可以看到该标签存在。我已经尝试过使用不同的等待而没有任何成功。Selenium找不到标记
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as ec
from selenium.webdriver.support.ui import WebDriverWait
driver = webdriver.Chrome('E:/Work/IdeaProjects/web_loaders/movie_scraper/chromedriver.exe')
driver.implicitly_wait(3)
url = 'https://fmovies.is/film/gilmore-girls-4.krm6'
print('opening %s' % url)
driver.get(url)
content = driver.find_element_by_id('player').find_element_by_class_name('cover')
content.click()
print('after click')
src = WebDriverWait(driver, 12).until(
ec.presence_of_element_located((By.TAG_NAME, 'video'))
).get_attribute('src')
@DebanjanB,我跳过代码搜索视频“吉尔莫女孩”,因为它是不关心这个问题。根据你的问题。请打开网站https://fmovies.is。在搜索栏中输入“Gilmore Girls”,然后按。点击第一个找到的项目。浏览器打开URL https://fmovies.is/film/gilmore-girls-6.mwo7。在此页面中,您可以看到带有播放按钮的空白“播放器”。请注意,当前打开的链接不是流媒体链接。请点击播放图标。浏览器将打开新的链接并开始流式视频。我正在尝试提取最后一个链接。如果在Chrome中按“选择元素”按钮并选择流媒体播放器,则会在“元素”标签中看到标签。您要求的行只是试图找到这个标签。硒的明确等待使用有
是标签里面任何框架或iframe标签? –
@osya您可以考虑在访问URL后更新您的确切手动步骤吗?谢谢 – DebanjanB
视频在iframe中。我们需要在访问inside.driver.switch_to_frame(driver.find_element_by_tag_name(“iframe”))之前切换帧。 –