使用Python的Selenium,如何在运行脚本后获取页面输出?

3 投票
3 回答
5166 浏览
提问于 2025-04-16 03:18

我不太确定怎么找到这些信息,目前我找到了一些关于用Python和selenium的教程,但没有一个涉及到这个问题。我能通过Python运行一些基本的测试脚本来自动化selenium,但它只会显示浏览器窗口几秒钟,然后就关闭了。我需要把浏览器的输出内容放到一个字符串或变量里(最好是这样),或者至少保存到一个文件中,这样Python就可以对这些内容进行其他操作(比如解析等等)。如果有人能指点我一些相关的资源,我会非常感激。谢谢!

3 个回答

2

好的,下面是我最终是怎么做到的,供将来需要的人参考。

你需要用火狐浏览器来实现这个功能。

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也会生成一些无用的页面,你可以通过简单的正则表达式来删除这些页面,之后怎么处理保存下来的页面就看你自己了。

3

使用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()
2

在Java中,有一个叫做Selenium.getHtmlSource()的方法,Python中也很可能有类似的功能。这个方法会返回当前页面的源代码,格式是字符串。你可以对这个源代码进行任何你想做的操作。

撰写回答