我正在尝试使用Python Mechanize检索网站并将其保存在本地磁盘上。问题是许多网站重定向到html / asp / php以外的链接。有没有准确的方法来检测URL具有什么扩展名以及它将检索哪种类型的文件?
例如: http://www.yahoo.com 应保存为html文件。
http://www.microsoft.com/en-us/download/confirmation.aspx?id=3745 应该在重定向时保存为.exe文件,然后下载exe文件。然而,content-type被声明为text / html,所以这不是我猜的最可靠的方法。
如何在保存文件的同时准确检测浏览器的文件扩展名?
谢谢堆
答案 0 :(得分:1)
http://www.microsoft.com/en-us/download/confirmation.aspx?id=3745 应该保存为.exe文件,因为它重定向,然后下载一个exe 文件。但是,content-type被声明为text / html,所以不是 我猜是最可靠的方法。
这不太正确。它不使用HTTP重定向。问题是Microsoft使用javascript导致浏览器下载文件。实际文件是:
http://download.microsoft.com/download/4/4/9/449b0038-ac27-4b24-bf11-dd8ebdf5cca6/sonar_setup.exe
由于mechanize无法为你运行javascript,你将不得不求助于解析链接的html和javascript文件。如果您只是抓一个以相同方式下载文件的网站,这可能是合理的。如果您正在寻找一般方法,则必须完全找到另一种方法。
浏览器可以知道下载文件的唯一方式: