Python下载完整的网页(包括CSS)

时间:2017-07-19 14:29:59

标签: python download scrapy

我有一个运行Scrapy和Splash的脚本从网站上提取各种数据,但我现在正试图找到一种方法来制作每个页面的离线副本。

我在Scrapy上尝试了以下内容:

def parse(self, response):
    filename = response.url.split("/")[-1] + '.html'
    with open(filename, 'wb') as f:
        f.write(response.body)

这与Urllib:

def parse(self, response):
    url = response.url
    file_name = 'aaa.html'
    with urllib.request.urlopen(url) as response, open(file_name, 'wb') as out_file:
        shutil.copyfileobj(response, out_file)

两者都可以正常工作,但只能将HTML下载到文件中。我需要整页(包括CSS) - 所以有没有办法做到这一点,类似于在使用谷歌浏览器手动保存网站时复制保存为“网页,完成”?

我怀疑像Selenium这样的东西,但是我觉得它对我的应用程序来说太慢了(这需要100个,有时需要1000个URL)。感谢。

1 个答案:

答案 0 :(得分:0)

你可以使用BeautifulSoup或Scrapy来浏览下载的html并使用a,src标签提取内容

更具体地说,例如css将在以下标记中

<link rel="stylesheet" type="text/css" href="">

然后在href内容中下载文件,您的编码将需要更加复杂

相关问题