网页已经打开(源格式);只需要使用Selenium读取该文本

时间:2013-08-23 18:00:14

标签: python selenium selenium-webdriver splinter

假设我已经在浏览器中打开了一个标签。它的URL是:

view-source:http://www.google.com/webhp?source=search_app

现在它已经打开并显示,我只想阅读客户端窗口中的文本。 (获取页面的上下文,或获取其对象(而不是创建新的浏览器对象),或者其他任何内容。然后只需阅读页面。)

Selenium中是否有任何方法,Splinter允许这样做?谢谢你的帮助。

3 个答案:

答案 0 :(得分:1)

如果您询问是否可以附加到已打开的浏览器,那么我认为答案是“否”。

答案 1 :(得分:0)

您可以直接使用Selenium获取页面来源:WebDriver.getPageSource()

但是如果你使用view-source:url,浏览器会显示一个包含格式化源的html页面。 Firefox例如将每一行包裹在<span id="lineX"></span>中。而不是解析这个,只需使用getPageSource而不使用view-source

请仔细阅读getPageSource的文档:

  

获取上次加载的页面的来源。如果页面在加载后已被修改(例如,通过Javascript),则无法保证返回的文本是已修改页面的文本。请参阅用于确定返回文本是否反映页面当前状态或Web服务器上次发送的文本的特定驱动程序的文档。返回的页面源是底层DOM的表示:不要期望它以与从Web服务器发送的响应相同的方式进行格式化或转义。把它想象成艺术家的印象。

答案 2 :(得分:0)

这就是我以前做的事情:

  1. 要求selenium打开浏览器
  2. 显示暂停执行的弹出/消息窗口
  3. 在浏览器中打开URL并手动执行所有相关操作
  4. 当我完成时(即在目标页面上),我在弹出窗口中单击“确定”,然后代码恢复,在浏览器中当前打开的目标页面上提取/执行我们想要的任务。