废话不多说,上代码
import urllib2
import urllib
url = "http://www.wayos.com/../Upfiles/down/WAP_3048-18.07.04V.trx"
req = urllib2.urlopen(url, timeout=60)
try:
urllib.urlretrieve(url, filePath)
except Exception, e:
print e.message
遇到过此问题的小伙伴知道上述代码在文件下载的时候存在问题的
如何修改呢?
(1)方法一:
我试了下,直接删除../,就是将url转换为http://www.wayos.com/Upfiles/down/WAP_3048-18.07.04V.trx
之后也是能够正常下载和执行的,结果一样,小编这里不是很明白了,../这不是返回到上一层目录吗?
(2)方法二:
进行特殊字符转义呗将..转化为\.\.然后就一切ok了。
添加了一个转化的函数,就一切OK了。
import urllib2
import urllib
def url_deal(url):
'''处理类类似于http://www.wayos.com/../Upfiles/down/WAP_3048-18.07.04V.trx链接不能下载的问题'''
if "/../" in url:
url = url.replace('/../','/\.\./')
return url
url = "http://www.wayos.com/../Upfiles/down/WAP_3048-18.07.04V.trx"
url = url_deal(url)
req = urllib2.urlopen(url, timeout=60)
try:
urllib.urlretrieve(url, filePath)
except Exception, e:
print e.message