废话不多说,上代码
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

本文探讨了在Python中使用urllib2模块进行网络文件下载时,URL包含../路径导致的下载失败问题。提供了两种解决方案:一是直接删除../,二是对..进行转义处理,将..替换为/./,并附带了代码实现。
1万+

被折叠的 条评论
为什么被折叠?



