pyt*_*hon 4 python url request broken-links
我试图从网页中提取链接,然后在我的网络浏览器中打开它们。我的 Python 程序能够成功提取链接,但某些链接之间有空格,无法使用request module
.
例如,example.com/A, B C
它不会使用请求模块打开。但是如果我把它转换成example.com/A,%20B%20C
它就会打开。python中有一种简单的方法来填充空格%20
吗?
`http://example.com/A, B C` ---> `http://example.com/A,%20B%20C`
Run Code Online (Sandbox Code Playgroud)
我想将它们之间有空格的所有链接转换为上述格式。
urlencode
实际上需要一本字典,例如:
>>> urllib.urlencode({'test':'param'})
'test=param'`
Run Code Online (Sandbox Code Playgroud)
你实际上需要这样的东西:
import urllib
import urlparse
def url_fix(s, charset='utf-8'):
if isinstance(s, unicode):
s = s.encode(charset, 'ignore')
scheme, netloc, path, qs, anchor = urlparse.urlsplit(s)
path = urllib.quote(path, '/%')
qs = urllib.quote_plus(qs, ':&=')
return urlparse.urlunsplit((scheme, netloc, path, qs, anchor))
Run Code Online (Sandbox Code Playgroud)
然后:
>>>url_fix('http://example.com/A, B C')
'http://example.com/A%2C%20B%20C'
Run Code Online (Sandbox Code Playgroud)