我必须从动态页面获取数据(事实上很多都是这样)。我可以使用Python中的Selenium访问该页面。但是,driver.page_source不完整。即使我尝试driver.implicitly_wait(100)也没有任何变化。
我也尝试过:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait # available since 2.4.0
from selenium.webdriver.support import expected_conditions as EC # available since 2.26.0
WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.LINK_TEXT, "Load all")))
虽然我看到一些等待/暂停,足以让页面加载,但是在等待之后我看不到对driver.page_source的影响。
这里有解决方案吗?
感谢。
答案 0 :(得分:0)
解决方案是使用其他东西来抓取页面源,如果你真的需要它。 Webdrivers'getPageSource
只会在驱动程序所在的最后一页的某些格式中返回某些状态。
来自(java)文档,但最有可能适用于其他语言:
getPageSource java.lang.String getPageSource()
获取上次加载的页面的来源。如果在加载后页面已被修改 (例如,通过Javascript)没有 保证返回的文本是修改后的页面的文本。请 查阅正在使用的特定驱动程序的文档 确定返回的文本是否反映了当前的状态 页面或Web服务器最后发送的文本。页面源返回 是底层DOM的表示:不要指望它 格式化或转义的方式与从Web发送的响应相同 服务器。把它想象成艺术家的印象。
Returns: The source of the current page