我正在编写一个Web爬网程序,并且如果我要访问该链接(实际上没有发出请求),则需要知道该页面上所有要向我吐出text / html mimetype的链接。我通过查看文件类型并检查它是否在我知道将具有html mime类型的文件类型列表中来完成此操作:
link = urlsplit(url)
extension = link.path.lower().split('.')[-1]
# check if they gave us a directory (which spits out a .html index)
if "/" in extension or extension == "php" or extension == "aspx" or extension == "asp":
extension = "html"
所以我有.html,.php,.aspx和.asp。还有什么呢?
P.S。我知道内容标头和mime类型以及所有这些如何工作。我知道这不是完美的方法,但是获取我遇到的每个链接的内容类型对我来说都是不可行的。因此,请通过列出提供html mime类型的常见文件类型来帮助我。当这给我一个错误的答案时,我不需要想象所有场景,因为这对于我的目的是微不足道的,并且对我没有帮助。
答案 0 :(得分:0)
这行不通。 URI不能可靠地表明将实际提供什么服务,您也不应该相信随机的远程主机是真实的。由于URL重写和Web应用程序URI路由,今天大多数URI中甚至都没有看到文件扩展名。
作为一个简单的演示,请考虑一个名为index.php
的文件,该文件具有以下内容:
<?php
header("Content-Type: image/jpeg");
file_put_contents( "Foo.png" ); // "Foo.png" is actually a renamed GIF
?>
http://(server)/index.php
image/jpeg
image/gif
!此外,我注意到您的问题中提到了“ DHTML”。我认为十年来它一直不是一个流行的流行语(我想我上次听到它是在2005年代左右使用的)-那是因为今天每个网页都是动态的,在一定程度上使该术语变得多余。我以为,“ AJAX”以一种简洁的方式代替了使用重要脚本的网页,即使它实际上并未涉及XMLHttpRequest
。