我目前正在教自己python(来自没有编程背景,但是很多系统管理员,脚本编写经验)并且已经开始创建一个查看网站并抓取所有图像的脚本/程序。我已经挣扎了很多但是我已经在一定程度上工作了。
现在,我当前的问题是,当我在url上执行urllib.urlretrieve(url,out_path)时:http://www.testsite.com/images/img.jpg
- 它工作正常,但像http://www.testsite.com/../images/img.jpg
这样的东西不起作用。当您在浏览器中点击该路径时,它可以正常工作,并且urllib.urlretrieve会检索图像,但是当您尝试在图像查看器中打开图像时它会被破坏。
这是我目前的代码:
http://pastebin.com/E9hutEGn - 对于pastebin帖子感到抱歉,代码有点太多了,我不想让帖子读得很糟糕。
任何人都能认识到它为什么不起作用吗?
答案 0 :(得分:0)
首先,pastebin是好的(也是你使用它的一个很好的理由)。
对于你的问题,我认为这可能是与基本网址连接的路径的问题。 让我用一个例子来解释:
>>>> import urlparse
>>>> base="http://somesite.com/level1/"
>>>> path="../page.html"
>>>> urlparse.urljoin(base,path)
> 'http://somesite.com/page.html'
>>>> base="http://somesite.com/"
>>>> urlparse.urljoin(base,path)
> 'http://somesite.com/../page.html'
所以我想你必须手动拿走你的../
小补充:我正在寻找你的问题并发现this post也可能有用