【发布时间】:2010-11-29 00:19:16
【问题描述】:
有谁知道修复“损坏”网址的库。当我尝试打开诸如
之类的网址时http://www.domain.com/../page.html
http://www.domain.com//page.html
http://www.domain.com/page.html#stuff
urllib2.urlopen 阻塞并给我一个 HTTPError 回溯。有谁知道可以解决这些问题的库吗?
【问题讨论】:
-
最后一个是完全有效的不是吗?
-
为什么不扫描网址(我认为是在一个网站上),然后用找到的网址,您不能使用正则表达式替换坏的,或者最坏的情况是手动替换它们?
-
@SeanJA:最后一个对浏览器有效,但浏览器会在发送到服务器之前删除
#stuff部分。服务器可能会拒绝最后带有#stuff的URL,这就是OP 发现urlopen错误的原因。在向服务器询问该 URL 之前,必须删除此类词缀。 -
我什至不会尝试修复前两个。充其量它们可能是由于过多的复制和粘贴而导致格式错误(缺少“cgi-bin/awesomeblog”部分),最坏的情况是它们试图在 htdocs 之外窥视。您将如何“修复”example.com/../../etc/password 之类的网址
-
可能首先尝试确定他们为什么错了?