双斜杠python_Python中的URL解析-规范化路径中的双斜杠

路径(//path)本身无效,这会混淆函数并被解释为主机名If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//").

我不太喜欢这两种解决方案,但它们都有效:import re

import urlparse

testurl = 'http://www.example.com//path?foo=bar'

parsed = list(urlparse.urlparse(testurl))

parsed[2] = re.sub("/{2,}", "/", parsed[2]) # replace two or more / with one

cleaned = urlparse.urlunparse(parsed)

print cleaned

# http://www.example.com/path?foo=bar

print urlparse.urljoin(

testurl,

urlparse.urlparse(cleaned).path)

# http://www.example.com//path

根据所做的操作,您可以手动进行连接:import re

import urlparse

testurl = 'http://www.example.com//path?foo=bar'

parsed = list(urlparse.urlparse(testurl))

newurl = ["" for i in range(6)] # could urlparse another address instead

# Copy first 3 values from

# ['http', 'www.example.com', '//path', '', 'foo=bar', '']

for i in range(3):

newurl[i] = parsed[i]

# Rest are blank

for i in range(4, 6):

newurl[i] = ''

print urlparse.urlunparse(newurl)

# http://www.example.com//path

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值