2014-01-23 2 views
-3

При попытке выполнить приведенный ниже код появляется ошибка с отступом. Я пытаюсь распечатать URL-адреса набора html-страниц рекурсивно.Требуется помощь при вычислении ошибки отступа в коде python

import urllib2 
from BeautifulSoup import * 
from urlparse import urljoin 
# Create a list of words to ignore 
ignorewords=set(['the','of','to','and','a','in','is','it']) 

def crawl(self,pages,depth=2): 
for i in range(depth): 
newpages=set() 
for page in pages: 
try: 
c=urllib2.urlopen(page) 
except: 
print "Could not open %s" % page 
continue 
soup=BeautifulSoup(c.read()) 
self.addtoindex(page,soup) 
links=soup('a') 
for link in links: 
if ('href' in dict(link.attrs)): 
url=urljoin(page,link['href']) 
if url.find("'")!=-1: continue 
url=url.split('#')[0] # remove location portion 
if url[0:4]=='http' and not self.isindexed(url): 
newpages.add(url) 
linkText=self.gettextonly(link) 
self.addlinkref(page,url,linkText) 
self.dbcommit() 
pages=newpages 
+2

Где вы копировали этот код? –

+2

Код, который у вас есть, не имеет должным образом отступ (выглядит как копия/вставка для меня). Вы должны посмотреть на http://docs.python.org/release/2.5.1/ref/indentation.html, чтобы узнать о правильный отступ в питоне. – Amyth

+0

Попробуйте отступом ваш код bro. Это избавляет нас от многих головных болей. – kotAPI

ответ

0

Хорошо, что вы закодированы, совершенно не нужны, поэтому Python будет плакать, когда вы попытаетесь запустить его.

Помните, что пробелы в Python важны. Отступы с 4 пробелами, а не вкладками, сохраняют много «невидимых» ошибок отступов.

Я проголосовал за то, что код был вставлен неформатированным/неинтенсивным, что означает, что плакат не понимает python (и не читает базовый учебник) или вставил код без повторного отступов, что делает его невозможно никому ответить.

Смежные вопросы