I followed this article to try to download images from an external website. I am trying to pull all the images from an external link. I used BeautifulSoup to parse the link and get all the necessary links.
Before calling view, the render () function at the end of the code, image_list and return_dict have the required values. However, the render function seems to throw an AttributeError exception. Please, help.
I get the following error:
AttributeError at /post/add_new/ META Request Method: POST Request URL: http://localhost:8000/post/add_new/ Django Version: 1.4.1 Exception Type: AttributeError Exception Value: META Exception Location: C:\Python27\lib\urllib2.py in __getattr__, line 225 Python Executable: C:\Python27\python.exe Python Version: 2.7.3 Python Path: ['C:\\Users\\Talal\\Python Workspace\\talal_ynd', 'C:\\Python27\\lib\\site-packages\\ipython-0.13-py2.7.egg', 'C:\\Python27\\lib\\site-packages\\pyreadline-2.0_dev1-py2.7-win32.egg', 'C:\\Python27\\lib\\site-packages\\pil-1.1.7-py2.7-win32.egg', 'C:\\Python27\\lib\\site-packages\\setuptools-0.6c11-py2.7.egg', 'C:\\windows\\system32\\python27.zip', 'C:\\Python27\\DLLs', 'C:\\Python27\\lib', 'C:\\Python27\\lib\\plat-win', 'C:\\Python27\\lib\\lib-tk', 'C:\\Python27', 'C:\\Python27\\lib\\site-packages'] Server time: Thu, 13 Sep 2012 17:30:45 +0500
Here is my file:
# Create your views here. from django.shortcuts import render from django.http import HttpResponseRedirect from posts.models import Post, PostForm from django.template.loader import get_template from talal_ynd.settings import TEMPLATE_DIRS def post_view(request): if request.method == 'POST': post_form = PostForm(request.POST) if post_form.is_valid(): success_message = 'Thank you.' link = post_form.cleaned_data['link'] if 'get_link' in request.POST: import urllib2 request = urllib2.Request(link) response = urllib2.urlopen(request) html=response.read() from BeautifulSoup import BeautifulSoup soup=BeautifulSoup(html) import re title=''; description='' description=soup.findAll('meta', attrs={'name':re.compile("description$", re.I)})[0].get('content') try: title=soup.findAll('meta', attrs={'name':re.compile("^title$",re.I)})[0].get('content') except: pass if not title: title=soup.title.string max_images=10 image_tags=soup.findAll('img',limit=max_images) image_urls_list=[] image_urls_list2=[] from urlparse import urljoin for image_tag in image_tags: url=image_tag.get('src')
Talal source share