如何为本地保存的html抓取'隐藏'JS

时间:2015-03-11 18:45:22

标签: javascript python html selenium

我正在使用selenium&为项目进行治疗。

我需要一个本地的html文件,这就是为什么我在本地下载html使用' driver.page_source'使用selenium并将其保存为本地.html文件。

当我在任何浏览器(Chrome,Firefox,Safari)中打开它时,我发现并非显示所有页面。但是,如果我在记事本,textedit或Pycharm中打开相同的文件,它会显示所有信息。此外,如果我查看源代码(在Chrome或任何其他浏览器中,信息会显示)。

我试图遵循许多Feed的建议: 例如:通过实施: html = driver.execute_script(" return document.getElementsByTagName(' html')[0] .innerHTML")。但这并不奏效   (例如:How to get html with javascript rendered sourcecode by using selenium

重要提示:实际上,当我第一次打开本地html文件时,我可以在它消失之前简单地看到整个页面。

经过多天的困惑,我真的很感激任何帮助。在此先感谢!!

1 个答案:

答案 0 :(得分:0)

我终于找到了问题的解决方案。

我所做的是在Firefox.driver中禁用JS(在webdriver中),它运行得很好。在过去的几周里,这一直是我的想法。下面是在Python中执行此操作的代码。

我希望这可以帮助其他人。我花了很长时间才找到它的Python代码 - 那里有很多Ruby和Java的答案。不幸的是我再也找不到答案的来源了。

享受! :-D

fp = webdriver.FirefoxProfile()
fp.set_preference("javascript.enabled", False)
self.driver = webdriver.Firefox(firefox_profile=fp)