我正在使用以下代码使用Python保存网页:
import urllib
import sys
from bs4 import BeautifulSoup
url = 'http://www.vodafone.de/privat/tarife/red-smartphone-tarife.html'
f = urllib.urlretrieve(url,'test.html')
问题:此代码将html保存为基本html,而不使用javascripts、图像等。我想将网页保存为完整的(就像我们在浏览器中有选项一样)
更新: 我现在使用以下代码来保存webapge的所有js/images/css文件,以便将其保存为完整的网页,但我的输出html仍像基本html一样被保存:
import pycurl
import StringIO
c = pycurl.Curl()
c.setopt(pycurl.URL, "http://www.vodafone.de/privat/tarife/red-smartphone-tarife.html")
b = StringIO.StringIO()
c.setopt(pycurl.WRITEFUNCTION, b.write)
c.setopt(pycurl.FOLLOWLOCATION, 1)
c.setopt(pycurl.MAXREDIRS, 5)
c.perform()
html = b.getvalue()
#print html
fh = open("file.html", "w")
fh.write(html)
fh.close()
为了让@rajatomar788运行上面的脚本,我必须首先执行以下所有导入操作:
要运行pywebcopy,您需要安装以下软件包:
在那之后,它出现了一些错误,但我确实让文件夹里装满了构成网页的文件。
尝试用selenium模拟您的浏览器。此脚本将弹出网页的
save as
对话框。在selenium无法访问文件对话框的情况下,您仍然需要了解如何模拟按enter键下载以启动(如何操作也依赖于操作系统)。另外,我认为下面的@Amber建议获取链接的资源可能更简单,因此是更好的解决方案。不过,我认为使用selenium是一个很好的起点,因为
br.page_source
将为您提供整个dom以及javascript生成的动态内容。您可以使用简单的python库pywebcopy轻松实现这一点。
你的下载文件夹里有html,css,js。完全像原始站点一样工作。
相关问题 更多 >
编程相关推荐