2017-06-20 49 views
0

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

>>> 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和giffs,但没有任何搜索结果。

如果我有网页打开,我可以手动打按Ctrl +小号,此时我提示保存.html文件在我选择的目的地。然后我可以用文本编辑器打开它,并且我需要用于地理编码的所有信息。

+0

为什么不使用br.page_source?但它只会下载HTML(不包括JS等)。我相信它会返回一个字符串,然后可以写入文件。 – ChickenFeet

+0

@ChickenFeet像魅力一样工作。没想到会因为手动查看页面源代码而仅从日志屏幕上显示html。这正是我需要的。我收回我的“明确”评论。方式更好的方法。发布答案,我会检查它。谢谢! – ShaunO

+0

很高兴帮助。有关进一步信息,请参阅答案,关于在运行'page_source'并支持unicode之前加载页面。 – ChickenFeet

回答

1

我认为WebDriver.page_source是你所追求的。见documentation here

该方法应该在页面加载后执行,因此您可能需要执行“等到元素加载”功能来帮助获取整个页面。见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) 
相关问题