使用Python的Selenium,如何在运行脚本后获取页面输出?
我不太确定怎么找到这些信息,目前我找到了一些关于用Python和selenium的教程,但没有一个涉及到这个问题。我能通过Python运行一些基本的测试脚本来自动化selenium,但它只会显示浏览器窗口几秒钟,然后就关闭了。我需要把浏览器的输出内容放到一个字符串或变量里(最好是这样),或者至少保存到一个文件中,这样Python就可以对这些内容进行其他操作(比如解析等等)。如果有人能指点我一些相关的资源,我会非常感激。谢谢!
3 个回答
好的,下面是我最终是怎么做到的,供将来需要的人参考。
你需要用火狐浏览器来实现这个功能。
1) 创建一个新的火狐用户配置(这不是必须的,但这样可以把这个功能和你平常用的火狐区分开来),网上有很多关于怎么做的资料,具体步骤取决于你的操作系统。
2) 安装火狐插件:https://addons.mozilla.org/en-US/firefox/addon/2704/(这个插件可以自动保存指定域名的所有页面),你需要设置一下,告诉它要保存哪些域名。
3) 然后启动selenium服务器,使用你刚创建的配置(下面是Linux的示例)
cd /root/Downloads/selenium-remote-control-1.0.3/selenium-server-1.0.3
java -jar selenium-server.jar -firefoxProfileTemplate /path_to_your_firefox_profile/
就这样,当selenium访问这些页面时,它会自动保存指定域名的所有页面。不过,selenium也会生成一些无用的页面,你可以通过简单的正则表达式来删除这些页面,之后怎么处理保存下来的页面就看你自己了。
使用Selenium Webdriver和Python,你只需要访问.page_source
这个属性,就可以获取当前页面的源代码。
比如,使用Firefox()
这个驱动:
from selenium import webdriver
driver = webdriver.Firefox()
driver.get('http://www.example.com/')
print(driver.page_source)
driver.quit()
在Java中,有一个叫做Selenium.getHtmlSource()
的方法,Python中也很可能有类似的功能。这个方法会返回当前页面的源代码,格式是字符串。你可以对这个源代码进行任何你想做的操作。