【问题标题】:Selenium (Python) - Get webdriver's page_source after page is fully loadedSelenium (Python) - 页面完全加载后获取 webdriver 的 page_source
【发布时间】:2014-06-11 22:37:42
【问题描述】:

我必须从动态页面获取数据(实际上其中有很多)。我可以在 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 没有任何影响。

这里有解决办法吗?

谢谢。

【问题讨论】:

  • 你需要page_source做什么?

标签: python selenium web-scraping


【解决方案1】:

如果您确实需要,解决方案是使用其他东西来获取页面源。 Webdrivers 的getPageSource 将返回驱动程序上一页的某种格式的某种状态

来自 (java) 文档,但很可能适用于其他语言:

getPageSource

java.lang.String getPageSource()

获取最后加载页面的来源。如果页面加载后被修改
(例如,通过 Javascript)没有 保证返回的文本是修改页面的文本。请 查阅特定驱动程序的文档 判断返回的文本是否反映了当前状态 页面或 Web 服务器上次发送的文本。返回的页面源 是底层 DOM 的表示:不要期望它是 以与从网络发送的响应相同的方式格式化或转义 服务器。将其视为艺术家的印象。

Returns:
    The source of the current page

http://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/WebDriver.html#getPageSource%28%29

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-11
    • 2017-10-21
    • 1970-01-01
    • 1970-01-01
    • 2016-07-10
    • 2014-12-21
    相关资源
    最近更新 更多