Selenium 不呈现 html 页面源
Selenium does not render html page source
我尝试使用 python 和 selenium 从网页中获取数据:
from selenium import webdriver
driver=webdriver.Firefox()
driver.get('https://covid19.min-saude.pt/ponto-de-situacao-atual-em-portugal/')
'RECUPERADOS' in driver.page_source
False
字符串 'RECUPERADOS' 存在于驱动程序打开的浏览器 window 中,但不存在于 page_source 中。是什么阻止了 selenium 表单渲染页面 html?有没有办法像上面那样从页面获取数据?
您要搜索的元素文本在 iframe
中。您需要先切换到 iframe,然后等待元素可见,然后捕获 page_source.
使用 WebDriverWait
() 并等待 frame_to_be_available_and_switch_to_it
()
使用 WebDriverWait
() 并等待 visibility_of_element_located
()
driver.get('https://covid19.min-saude.pt/ponto-de-situacao-atual-em-portugal/')
WebDriverWait(driver,10).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"//*[@id='main']//iframe[1]")))
WebDriverWait(driver,20).until(EC.visibility_of_element_located((By.XPATH,"//*[name()='text'][text()='RECUPERADOS']")))
if 'RECUPERADOS' in driver.page_source:
print("YES")
else:
print("NO")
导入以下库。
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
要跳出iframe
需要使用下面的代码
driver.switch_to.default_content()
我尝试使用 python 和 selenium 从网页中获取数据:
from selenium import webdriver
driver=webdriver.Firefox()
driver.get('https://covid19.min-saude.pt/ponto-de-situacao-atual-em-portugal/')
'RECUPERADOS' in driver.page_source
False
字符串 'RECUPERADOS' 存在于驱动程序打开的浏览器 window 中,但不存在于 page_source 中。是什么阻止了 selenium 表单渲染页面 html?有没有办法像上面那样从页面获取数据?
您要搜索的元素文本在 iframe
中。您需要先切换到 iframe,然后等待元素可见,然后捕获 page_source.
使用 WebDriverWait
() 并等待 frame_to_be_available_and_switch_to_it
()
使用 WebDriverWait
() 并等待 visibility_of_element_located
()
driver.get('https://covid19.min-saude.pt/ponto-de-situacao-atual-em-portugal/')
WebDriverWait(driver,10).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"//*[@id='main']//iframe[1]")))
WebDriverWait(driver,20).until(EC.visibility_of_element_located((By.XPATH,"//*[name()='text'][text()='RECUPERADOS']")))
if 'RECUPERADOS' in driver.page_source:
print("YES")
else:
print("NO")
导入以下库。
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
要跳出iframe
需要使用下面的代码
driver.switch_to.default_content()