如何获取网站的所有源文件?

时间:2016-01-24 10:25:38

标签: python python-2.7

我要做的是创建一个获取网站页面并从公认的域名发送到客户端的服务器。

服务器本身已经完成。我现在需要的只是获取网站的所有源文件,例如当我右键单击网页然后"另存为..." 页面时, HTML文件和所有图像, JS和PHP (编辑:通过PHP我并不意味着源PHP文件服务器,但是当我执行此过程时创建的文件)文件也保存在HTML文件旁边的文件夹中。

我使用 wget 来获取HTML,但我如何使用它来获取其他所有内容? (我也尝试过使用Beatiful Soup)

def store_links(page):
    fh = open(page + ".html", "wb")
    site = urllib.urlopen(page)
    site_data = site.read()
    fh.write(site_data)
    wget.download(page)

正如此处提到的那样,可能会对HTML文件进行定相,然后在 href 段中获取所有文件(例如图像) url ,然后将它们下载到服务器

1 个答案:

答案 0 :(得分:1)

如果你向我们展示了你迄今为止尝试过的东西,我会很感激的。没有这些信息,我只能提供非特定的提示如何继续。

您正在搜索的内容非常类似于所谓的蜘蛛:一种解析网页并遵循其中所有链接的程序,通常是根据特定深度进行定制,以免意外复制整个互联网。

基本上可以使用requestscurl这样的包来从网上下载有问题的页面,然后解析html href=代码, src=等属性。除此之外,它只需要将二进制文件作为二进制文件下载并使用正确的encoding解释文本文件。

但有一些警告:

  • 您在浏览器中看到的内容以及浏览器打印的内容,在处理后端代码(例如评论中已提到的PHP)和前端{{1}之后 },可能包括严重JavaScript操纵和DOM来电。因此,您应该通过“显示源代码”左右仔细调查您看到的页面,并将其与通过ajaxwget命令行工具下载的内容进行比较。
  • 当您看到的不是curl并且wget中缺少最有趣的信息时,您可以使用所谓的无头浏览器一个带有HTML引擎的完整浏览器,可以像浏览器一样构建JavaScript并将其传递给您的例程。
  • 当您解析DOM时,您将安全地远离使用html。请参阅regexXML解析框架,例如HTML