2013-05-15 169 views
0

我正在开发一个应用程序,它解析一个网页,然后下载网页上的图像。我正在使用WAMP作为框架的网络服务器和DJango。在我的本地计算机上,我实现的python脚本按预期运行(将图像正确下载到本地桌面),但是当我尝试在使用DJango和WAMP的web服务器上运行它时,出现错误[Errno 13] Permission denied: 'C:\用户\ user123 \桌面\图像'。下面是我的代码,任何想法是什么导致了错误。Django给予[Errno 13]权限被拒绝

from django.http import HttpResponse 
from bs4 import BeautifulSoup as bsoup 
import urlparse 
from urllib2 import urlopen 
from urllib import urlretrieve 
import os 
import sys 
import zipfile 
from django.core.servers.basehttp import FileWrapper 

def getdata(request): 
out = r'C:\Users\user123\Desktop\images' 
if request.GET.get('q'): 
    #url = str(request.GET['q']) 
    url = "http://google.com" 
    soup = bsoup(urlopen(url)) 
    parsedURL = list(urlparse.urlparse(url)) 

    for image in soup.findAll("img"): 
     print "Old Image Path: %(src)s" % image 
    #Get file name 
    filename = image["src"].split("/")[-1] 
    #Get full path name if url has to be parsed 
    parsedURL[2] = image["src"] 
    image["src"] = '%s\%s' % (out,filename) 
    print 'New Path: %s' % image["src"] 
    #  print image 
    outpath = os.path.join(out, filename) 

    # 
    if image["src"].lower().startswith("http"): 
     urlretrieve(image["src"], outpath) 
    else: 
     urlretrieve(urlparse.urlunparse(parsedURL), out) #Constructs URL from tuple (parsedURL) 

    #Create HTML File and writes to it to check output (stored in same directory). 
    html = soup.prettify("utf-8") 
    with FileWrapper(open("output.html", "wb")) as file: 
     file.write(html) 

    #Create where zip file will be stored (same directory htmlparser file) 
    zip = zipfile.ZipFile('C:\Users\user123\Desktop\Images.zip', 'w') 

    #Path where file that will be zipped up is located 
    path = 'images' 

    #For each file, add it to the zip folder. 
    for root, dirs, files in os.walk(path): 
     for file in files: 
      zip.write(os.path.join(root, file)) 
    zip.close() 
else: 
     url = 'You submitted nothing!' 

return HttpResponse(url) 

回答

1

您的用户似乎没有“图像”目录的写入权限。 将目录设置为“世界可写”,然后重试。

+1

感谢mawimawi的回应,这是我在WAMP/Django环境中做的事情,还是我在我正在使用的Windows桌面上单独设置文件夹权限? – johns4ta

+1

我的猜测是Windows桌面上的文件夹权限。但是因为我从来没有部署到Windows(也没有在Windows中编码),所以我无法确定。 – mawimawi

+0

我为每个人设置了文件夹权限,但没有解决问题。我在网上找到了一些线索,我会看看它们是否会导致任何问题。再次感谢! – johns4ta

相关问题