全球名称<;功能>;未定义错误Python
我有一个函数全球名称<;功能>;未定义错误Python,python,web-crawler,Python,Web Crawler,我有一个函数 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
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)
def spider(最大页数):
页码=1
而page如果您这样定义详细功能:
def details(self, href):
......
然后,您可以调用self.details。虽然我不太明白您的错误…如果您这样定义详细功能:
def details(self, href):
......
然后,您可以调用self.details。虽然我不太明白您的错误…因为您在文件中的def details()
之前调用了spider(1)
,所以该函数details()
还不知道
您至少应该将调用spider(1)
移到函数定义后面,从def details()
开始,您可以在def def details()
之前保留def spider():
行,只要在spider()
所需的一切都“已知”时调用spider()
,也就是说,在到目前为止处理的文件中进行了解析。由于在文件中的def details()
之前调用了spider(1)
,因此该函数details()
还未知
您至少应该将调用spider(1)
移到函数定义后面,从def details()
开始,您可以在def def details()
之前保留def spider():
行,只要在spider()
所需的一切都“已知”时调用spider()
,即,在目前处理的文件中解析。您的缩进不正确。**
如何处理详细信息(href)
?不能突出显示代码块中的代码。或者那是你的python文件的一部分?我试着加粗,但网站就是这样格式化的。在实际的代码中,它不在那里。这都在一个文件中吗?在spider?之前定义了详细信息之后,这就是问题所在,请根据我的回答向下移动spider(1)
调用。谢谢!现在可以了。时限一到,我就接受你的答复。你的缩进不正确。**
如何处理详细信息(href)
?不能突出显示代码块中的代码。或者那是你的python文件的一部分?我试着加粗,但网站就是这样格式化的。在实际的代码中,它不在那里。这都在一个文件中吗?在spider?之前定义了详细信息之后,这就是问题所在,请根据我的回答向下移动spider(1)
调用。谢谢!现在可以了。一旦时间限制到了,我会接受你的回答。我仍然得到未解决的自我错误引用:/如果你在一个类下定义了所有东西,比如def spider(self,max_pages):我相信,你也没有很好地定义spider。我仍然得到未解决的自我错误引用:/如果你在一个类下定义了所有东西,比如defspider(self,max_pages):我相信,您也没有很好地定义spider。