Python Ctrl + S用于当前打开的URL

时间:2017-06-20 00:46:42

标签: python selenium wget

我在笔记本电脑上运行Windows 10。似乎有无穷无尽的帖子,建议人们使用wget,selenium,HTtracker等等。我明确地知道,我想要做的就是编写一个脚本,查看我指定的当前网页并执行 Ctrl + S 并输出html文件到我的文件或我指定的目的地。

>>> br = webdriver.Chrome()
>>> import selenium
>>> from selenium.webdriver.common.action_chains import ActionChains
>>> from selenium.webdriver.common.keys import Keys
>>> from selenium.webdriver.common.keys import Keys
>>> br = webdriver.Chrome()
>>> br.get(r"http://www.somewebpage.com")
>>> save_me = ActionChains(br).key_down(Keys.CONTROL).key_down('s').key_up('s')
>>> save_me.perform()

然后是什么?它去哪儿了?

I also tried this:
>>> import wget
>>> dir = r"C:\Users\user\Documents\GIS DataBase"
>>> url = br.current_url
>>> wget = "wget -p -k -p {} {}".format(dir, url)
>>> os.system(wget)
1

它返回1.这是什么意思?我保存的html文件在哪里?我无处可寻。

最后,我尝试运行HTTracker。它给了我所有的.js和giff,但没有给我搜索结果。

如果我打开了网页,我可以手动点击 Ctrl + S ,此时我被提示将.html文件保存在我的目的地选择。然后,我可以使用文本编辑器打开它,并且我需要进行地理编码所需的所有信息。

1 个答案:

答案 0 :(得分:0)

我认为WebDriver.page_source是您追求的目标。请参阅documentation here

此方法应在页面加载后执行,因此您可能必须执行“等到元素已加载”#39;功能,以帮助获取整个页面。请参阅wait for element Q&A

解决方案示例:

// optionally wait for page to finish loading, then
page_src = br.page_source.encode("utf-8") // support unicode characters
f = open('page.html', 'w')
f.write(page_src)