Selenium page_source不返回修改过的DOM

2024-10-01 07:34:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我想弄清楚将NoScript/ghostery之类的插件应用到某个网页之前和之后的变化。NoScript/ghostery阻止跟踪者和广告商的脚本,并将它们从DOM树中删除(例如,我在浏览时检查了它“http://a.visualrevenue.com/vrs.js”)美国有线电视新闻网在Firefox中“启用”NoScript之前和之后)。但是,如果我使用selenium的转储DOM树,“http://a.visualrevenue.com/vrs.js”仍然存在browser.get_源代码. 在此过程中,我使用了以下代码:

import pickle
from selenium import webdriver

fp = webdriver.FirefoxProfile(../<extension/addons/>)
browser = webdriver.Firefox(firefox_profile=fp)
browser.get("http://www.cnn.com")
html_source = browser.page_source
f = open("cnn.p", "wb")
pickle.dump(html_source, f)

selenium的get-source-get-source文档说它会被修改(在我的例子中是由NoScript修改的)DOM树,但我无法确定是否会发生这种情况。如果有人能就如何使用selenium或任何自动化工具修改(通过插件)DOM树发表意见,我将不胜感激。在


Tags: browsercom插件httpsourcegetseleniumjs
1条回答
网友
1楼 · 发布于 2024-10-01 07:34:39

试了好几种方法,终于解决了我的问题。而不是使用webdriver.page_源(输出'html source'),我使用webdriver.execute_脚本(“返回document.documentElement.outerHTML)来转储呈现的HTML。在

相关问题 更多 >