作为我学习 Python 的一部分,我正在为 MediaWiki API 编写一个包装器来返回文章文本。
这是搜索文章的功能:
def article_search(self, search_terms):
url = self.article_url % (self.language, search_terms)
response = requests.get(url)
tree = html.fromstring(response.text)
results = tree.xpath('//rev[@contentmodel='wikitext']/text()')
test_redirect = re.search('\#REDIRECT', str(results))
if test_redirect:
redirect = re.search(r'\[\[([A-Za-z0-9_]+)\]\]', str(results))
go_to = redirect.group(1)
article_search(go_to)
else:
return results
if-else 块的目标是检查搜索结果是否真的试图将我们重定向到另一个页面 ( if test_redirect
),然后搜索我们被重定向到的页面article_search(go_to)
。当我在我知道不会重定向的页面上运行代码时,它工作正常。但是,当我在确实有重定向的页面上运行它时,我得到NameError: global name 'article_search' is not defined
. 我觉得这可能是一个新手问题,但我不确定我做错了什么。有什么帮助吗?