我要做的是创建一个获取网站页面并从公认的域名发送到客户端的服务器。
服务器本身已经完成。我现在需要的只是获取网站的所有源文件,例如当我右键单击网页然后"另存为..." 页面时, 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 ,然后将它们下载到服务器
答案 0 :(得分:1)
如果你向我们展示了你迄今为止尝试过的东西,我会很感激的。没有这些信息,我只能提供非特定的提示如何继续。
您正在搜索的内容非常类似于所谓的蜘蛛:一种解析网页并遵循其中所有链接的程序,通常是根据特定深度进行定制,以免意外复制整个互联网。
基本上可以使用requests
或curl
这样的包来从网上下载有问题的页面,然后解析html
href=
代码, src=
等属性。除此之外,它只需要将二进制文件作为二进制文件下载并使用正确的encoding
解释文本文件。
但有一些警告:
PHP
)和前端{{1}之后 },可能包括严重JavaScript
操纵和DOM
来电。因此,您应该通过“显示源代码”左右仔细调查您看到的页面,并将其与通过ajax
或wget
命令行工具下载的内容进行比较。curl
并且wget
中缺少最有趣的信息时,您可以使用所谓的无头浏览器一个带有HTML
引擎的完整浏览器,可以像浏览器一样构建JavaScript
并将其传递给您的例程。DOM
时,您将安全地远离使用html
。请参阅regex
和XML
解析框架,例如HTML
。