为什么urllib2.urlopen无法打开页面,例如“ http:// localhost/new-post#ryverm-29”?
-
05-10-2019 - |
题
我很好奇,为什么我会得到404错误运行此行:
urllib2.urlopen("http://localhost/new-post#comment-29")
虽然一切正常 http:// localhost/new-post#评论29 在任何浏览器中...
urlopen方法不会用其中的“#”解析URL?
有人知道吗?
解决方案
在HTTP协议中,片段(来自 #
Onwards)不会通过网络发送到服务器:它是由浏览器本地保留并使用的,一旦完全收到了服务器的响应,以某种方式将“视觉位置”“视觉定位”页面中的确切位置将显示为“当前”(用于例如,如果返回的页面在HTML中,则可以通过解析HTML并寻找第一个合适的 <a>
旗帜)。
因此,过程是:删除片段,例如通过 urlparse.urlparse
;使用其余的来获取资源;根据服务器响应的内容类型标头适当解析它;然后采取有关资源上“当前位置”的视觉动作,基于在解析资源中定位您在第一步中保留的片段。
不隶属于 StackOverflow