Python 无递归却出现递归错误?
我刚开始学Python,正在做一个网页爬虫,纯粹是为了好玩和学习。我没有使用任何递归函数,但还是遇到了“RuntimeError: maximum recursion depth exceeded”的错误。我感到很困惑,觉得自己可能漏掉了什么明显的东西,或者对某些东西理解错了。我是不是在某种情况下进行了递归,还是说这和我大的循环有关?我的想法是爬取网页,直到爬取到1万页。
更新:
最新的代码在这里: http://pastebin.com/4v5GT7ft
错误追踪信息在这里: http://pastebin.com/9GzAxZM9
看起来我的问题是试图对一个没有正确编码的URL调用str()。我尝试过解码这些URL,然后再编码成unicode,但一直没能成功。如果有任何建议,我会非常感激!
1 个回答
2
你给我们的代码其实不能运行(缺少所有的import
语句,还有缩进错误等等),而且它需要一个我们没有的JET数据库和一个第三方模块来读取这个数据库,并且它是硬编码的,使用的是你家目录下已经存在的文件夹。
我试着在这个链接 http://pastebin.com/rCJriEu5 修复了这些问题(这个需要lxml
和bs4
,如果你用的是其他解析库或者BS3,我可以尝试那种方式)。
当我运行它的时候,似乎是可以工作的。现在完成度是31.73%,还没有出现错误。即使我在文件开头加上sys.setrecusionlimit(50)
,它还是能正常运行(到目前为止完成度是3.67%)。
所以,你代码里出问题的地方显然是在你没有给我们看的代码里。