全局名称 <function> 未定义错误 Python
Global Name <function> not defined error Python
我有一个功能
def details(href):
response = requests.get(href)
soup = BeautifulSoup(response.content)
genre = soup.find(text="Genre: ").next_sibling.text
print genre
我正在尝试在另一个函数中调用
def spider(max_pages):
page = 1
while page <= max_pages:
url = 'http://www.boxofficemojo.com/yearly/chart/?page=' + str(page) + '&view=releasedate&view2=domestic&yr=2013&p=.htm'
source_code = requests.get(url)
plain_text = source_code.text
soup = BeautifulSoup(plain_text)
for link in soup.select('td > b > font > a[href^=/movies/?]'):
href = 'http://www.boxofficemojo.com' + link.get('href')
details(href)
title = link.string
listOfTitles.append(title)
page += 1
spider(1)
我遇到错误
第 27 行,在
蜘蛛(1)
第 22 行,在 spider 中
详情(href)
NameError:全局名称 'details' 未定义
我已经尝试了 self.details(href) 方法,但是还有一个错误提示无法解析 "self"。我该如何解决这个问题?
如果你这样定义细节函数:
def details(self, href):
......
然后,您可以调用self.details。虽然我不太明白你的错误...
由于您在文件中的 def details()
之前调用了 spider(1)
,因此该函数 details()
尚不清楚。
你至少应该把调用spider(1)
移到以def details()
开头的函数定义后面,你可以在def details()
之前保留def spider():
行,只要调用spider()
当 spider()
所需的一切都是 "known" 时发生,即在目前处理的文件中解析。
我有一个功能
def details(href):
response = requests.get(href)
soup = BeautifulSoup(response.content)
genre = soup.find(text="Genre: ").next_sibling.text
print genre
我正在尝试在另一个函数中调用
def spider(max_pages):
page = 1
while page <= max_pages:
url = 'http://www.boxofficemojo.com/yearly/chart/?page=' + str(page) + '&view=releasedate&view2=domestic&yr=2013&p=.htm'
source_code = requests.get(url)
plain_text = source_code.text
soup = BeautifulSoup(plain_text)
for link in soup.select('td > b > font > a[href^=/movies/?]'):
href = 'http://www.boxofficemojo.com' + link.get('href')
details(href)
title = link.string
listOfTitles.append(title)
page += 1
spider(1)
我遇到错误
第 27 行,在 蜘蛛(1) 第 22 行,在 spider 中 详情(href) NameError:全局名称 'details' 未定义
我已经尝试了 self.details(href) 方法,但是还有一个错误提示无法解析 "self"。我该如何解决这个问题?
如果你这样定义细节函数:
def details(self, href):
......
然后,您可以调用self.details。虽然我不太明白你的错误...
由于您在文件中的 def details()
之前调用了 spider(1)
,因此该函数 details()
尚不清楚。
你至少应该把调用spider(1)
移到以def details()
开头的函数定义后面,你可以在def details()
之前保留def spider():
行,只要调用spider()
当 spider()
所需的一切都是 "known" 时发生,即在目前处理的文件中解析。