使用urllib2执行URL并返回呈现的HTML输出,而不是HTML本身

urllib2.urlopen("http://www.someURL.com/pageTracker.html").read(); 

上面的代码将返回源代码为http://www.google.com。使用urllib2执行URL并返回呈现的HTML输出,而不是HTML本身

我需要做些什么来实际返回您在访问google.com时看到的呈现的HTML?我基本上试图'执行'一个URL来触发一个视图,而不是检索HTML。

为了澄清一些事情:

  • 我并不真正关心的页面
  • 我担心的页面渲染,因为它会适当的浏览器,以便里面的视觉输出我可以通过该页面上的JavaScript跟踪Google Analytics目标。

回答:

由于Google主页在某种程度上依赖于JavaScript,因此您无法使用简单的HTTP请求/ HTML解析库来呈现HTML,因为它们不会在页面上运行JavaScript增强功能。只有Web浏览器呈现HTML,所以你需要一个浏览器来获取呈现的HTML。

而不是简单的HTTP请求库,你需要使用一个成熟的无头网页浏览器库。

一个可用的选项是Selenium及其WebDriver。

https://pypi.python.org/pypi/selenium

  1. 公开赛中硒的页面。以PyPi为例。

  2. 等待一段时间time.sleep()以确保所有资源都已加载,并且基于JavaScript的DOM修改得以解决。延迟取决于网页,我建议你以不同的价值体验。

  3. 可以发出一个JavaScript命令到Selenium驱动程序返回当前加载页面的DOM树:

    driver.execute_script("return document.innerHTML") 

回答:

你可能想尝试https://code.google.com/p/pywebkitgtk/。使用PyWebkit,您可以创建HTML页面的渲染视图。

随着网络技术的不断变化,呈现网页并不是一项简单的任务。存在多个渲染引擎。其中两个最突出:Webkit(Chrome/Chromium,Safari)和Gecko(Firefox)。还有Trident(Internet Explorer)和Blink(Opera)。

Google.com也包含需要解释的Javascript。它应该呈现没有Javascript的罚款,但可能会看起来不同。

以上是 使用urllib2执行URL并返回呈现的HTML输出,而不是HTML本身 的全部内容, 来源链接: utcz.com/qa/261308.html

回到顶部